Telling people to leave finance
mathbabe.org
mathbabe.org
I left because they fired my charismatic manager and the firm's culture grew neurotic as the scandals and random terminations piled on. I saw the over-worked, sociopathic, misanthropic archetypes. But I saw the same personalities in Silicon Valley.
The capital markets are a critical piece of our modern world. We're still figuring out how these fascinatingly complicated machines work - they act differently in different cultures, in different sentiments, and under different geopolitical constraints. When they work...it's magical. The philosophical dimension of a weighted democracy doing better what kings and emperors through antiquity failed to do is a powerfully individualist statement. And there is so much more that has to be done. There are literally not enough hours in a lifetime of lifetimes to see all the implications and interactions and human potential waiting to be unlocked.
Do I sound like a crackhead? Probably. But I love the idea of taking what is not understood, considered "random" or "exogenous", and building something to bring it from the unknown to the known. I understand the historical struggle these resource allocation machines (how I think of them) have faced and why we need people to carry the flag, even if it means being hated and misunderstood by the public.
A lot of people go into finance for the wrong reasons. I feel sorry for them. A lot of them are held there by a fear, not of losing the cash flow, but of losing the prestige or business card. These people need help, not derision. But concluding the entire industry is corrupt is like looking at JustFabulous and a handful of overworked founders and concluding Silicon Valley a blight on humanity.
P.S. I don't expect a huge salary just for working at a bank. But if I'm coming up with original ideas, I will do the calculation of what I could earn if I went out on my own, and if the bank figure doesn't line up with that figure (it didn't) it makes sense to arbitrage. This is classic entrepreneurship and there is nothing more sinister about JPMorgan having to compete with a star player launching their own fund than there is Google having to pay out to top performers who may otherwise do well launching a start-up.
In your opinion, are there any trading firms that you feel embody that idea that they should be working to create systems to better allocate capital (instead of, say, gaining all of the capital for themselves)? I'm attracted to the problems that banks have to solve and deal with, but the culture around the current solutions is incredibly off putting.
Note that it's more fun to prance around the trading floor Gangnam Style than compose oneself as an extra-dimensional intelligence, a memo the tech industry has taken to heart. The loudest kid isn't driving the bus.
http://www.bwater.com/Uploads/FileManager/Principles/Bridgew...
Edit: Seriously, regardless of what you're surfing online right now, stop it and go read Principles. It's worth it.
http://www.bwater.com/Uploads/FileManager/Principles/Bridgew...
From the intro: "Above all else, I want you to think for yourself—to decide 1) what you want, 2) what is true and 3) what to do about it...If you can’t do these things, you should reflect on why that is, because you probably have discovered one of your greatest impediments to getting what you want out of life."
1. Quants and financial IT: decent, geeky, respectable people (for the most part; some exceptions exist.)
2. Startup engineers: decent, geeky, respectable people. More optimistic and less socially skilled than (1). Not a worse or better crowd, just different.
3. Soft-side bankers: a few decent ones, many giant douches, some outright slimeballs.
4. Soft-side VC-istanners (executives, founders): from my experience, most are horrid human beings attempting to exploit the idealism of (2). Most are far worse than (3). There's a small sample size here, but enough to notice a "type".
To me the contrast between silicon valley and NYC illustrates why modern finance is so useless. VCs know that they can't determine whether a company is worth funding without visiting it in person, getting to know the founders, figuring out what's going on in the industry.
In contrast, finance has become a black hole of computers trading with other computers, completely ignorant of what the companies behind the ticker symbols even do. If you tried to explain to a quant why he should fund one company or the other because of the fundamentals, he would probably just tell you that it's irrelevant. It's about the mathematical models, gaming the system, and staying "just windward of the law."
There is a lot of BS to go around in every industry. But when your industry produces something of value people tend to give you a break. My tax dollars are still paying for the mistake of the finance industry, from which I got no upside, so you'll forgive me if I don't give you a break.
1. I don't think a new social media platform deserves in the same category as cancer research. When I talk about VC-istan, I'm talking about the former category. I know absolutely nothing about biotech.
2. There's no question that what entrepreneurs are doing has the potential to make the world substantially better. I'm only saying that among the people I've seen get picked to be founders, I've seen few good ones and mostly bad.
I don't have a "[my] industry". I've worked in finance, and in startups, and I generally work whereever I think it will benefit my career. I don't think it's wise to rule anything out.
Anyway, certainly I agree with the spirit of what you are saying. VC-istan could be really great, but it needs a total reboot and that involves most of the current crop of "cool kids" being out on the curb.
To me the best side of finance is when you can go out and see something real and know you made it happen. When I worked for a major energy company as a side of the desk project I designed a very long term refinery margin lockin trade to enable a 100,000 barrel plus expansion of a refinery. It wasn't just going to the markets and doing some buy sell orders, but rather we went to a major Opec member and got them to sell us crude oil via a formula and then went to multiple fuel end users and got the to agree to buy fuel on a formula of crude oil + X. The difference between what we'd buy and sell less operating expenses was far greater than the cost to expand the refinery and we only had to lock up 10 years of the expected min 30 year lifespan of the equipment to do it.
All that being said, WAY too many people are going into whiteshirt wall street finance that should be out in the world making stuff happen. There is another world of steel toed boots on the ground working with engineers to figure out how to build stuff.
Proprietary trading is a pain, especially if you have no investors. You take on all kinds of unimaginable liabilities if you set up a self-clearing BD. Life is very stressful, because even problems with external agencies can cause problems. For example, suppose you were spread trading (buying one thing and selling the other, expecting the prices to converge) and one trade was broken. You could wake up the next morning with millions or billions of dollars in liabilities (this happened to many people in 2010).
The real problem is that, for most people, finance is interesting because they don't share in the downside. If you have a job as a trader for a bank or hedge fund, and you blow up (assuming, of course, you were not doing anything illegal) you merely lose your job. You aren't in the hole for the liability.
Most of finance operates in that mode, dealing with OPM (other people's money).
Clearing refers to everything that takes a trade from transaction, e.g. a voice confirmation over the phone, to settlement, i.e. securities and cash having changed hands. Clearing involves such processes as making sure you (and your customers) remain within margin constraints, mailing tax documents, dealing with counter-parties messing up and sending you wrong securities/amounts of cash or forgetting to send you anything at all (a failed trade), etc.
A self-clearing B-D, instead of outsourcing this function to a bank's "prime brokerage" function or a dedicated clearing outsourcing firm, has its own operations department that takes care of these functions.
That might have been the case in the past, but I feel the current HFT driven market has little to do with resource allocation (or even funding companies for that matter).
Further, people are far weather now than at any point in the past. So, even if capital markets where less efficient than ancient princes at distributing wealth, the inefficiency would be less obvious.
Bubbles don't invalidate Efficient Market Hypothesis (which is, in any case, only known to be approximately true). EMH, roughly speaking, says that prices correspond to expected values of future values. That doesn't specify a timeframe (which is one of the problems with EMH; it's demonstrably false over very short time frames in which arbitrage occurs, and also over very long timeframes) but it's not incompatible with bubbles. Over the course of a bubble with a short timeframe (which is a reasonable assumption for something highly liquid) the expected value of the price is actually increasing (even if the very long term expected value is lower; in the long run, we are all dead).
Markets favor availability over consistency. You can trade at a price. That price might be a couple percent higher or lower tomorrow. That's called "volatility", and we model it as Brownian motion (although it's more fat-tailed than a normal distribution). The inconsistency exists because no one really knows what the true fair value of equity is, but the market can deliver a price that usually represents the expected value of the thing in the future. Markets don't do a perfect job of pricing these things, but no one has ever been able to do a better job.
The best argument for financiers as "the good guys" is that, from about 1950 to 2007, financial markets have become riskier and more volatile while the real economy has become less so. There's an argument to be made that these markets have taken risk out of the economy and transfered it into markets that can crash without wiping people out. There's also an argument to be made that the ongoing collapse of the middle class has something to do with "activist" investors (PEtards) and that this evil more than cancels out the good. Not going to form a strong opinion on that one.
Then there was 2008. That one got blamed on the quants, but it's actually people on the business side, especially the ones involved in real estate (and industry that has about as much integrity as Hitler's scrotum). Yes, finance has scumbags like every other industry, and the 2008 crash was horrible and showed how disgusting a lot of powerful people are willing to be.
I don't know what to believe. I'll say this, though: the people I meet in finance are much better than people at the higher levels of VC-istan. I've met $1-million-per-year traders who are really great people, while most startup founders and executives I've met are pretty goddamn slimy. (I'm sure counterexamples exist, but in my VC-istan experience, fundraising ability and decency are correlated at about -1.0.) VC-istan is, after all, funded by private equity guys rather than quants, so what the fuck else would one expect?
Activist investors in the 1980s took over a lot of companies and laid people off. I don't think that was necessarily a bad thing, because corporate inefficiency was pretty extreme in that time.
What I think is killing the middle class is upper-class corruption, rampant inequality, generational malfeasance, and political chicanery. "Activist investors" probably don't belong on the top 10.
The argument you would have to make is that the influence of activist investors led to the cutthroat corporate cultures of the 1980s and onward, with "rank-and-yank" becoming normal. But I don't know if that's the case. I will say that the argument can be made.
The argument can also be made that, since what's killing the middle-class is back-scratching, self-dealing, and corruption among a well-connected and entrenched upper class, that investor activism has been fighting against the enemy. I have no idea whether that's true either.
Most bubbles are capital allocation errors made by humans.
When my (now wife) and I went to my going away party, she was approached by many of the other banker's wives. They said they were so happy for her that I was leaving the industry, and expressed the difficulties the lifestyle presented to raising a family and relationships. I loved the people I worked with - they were hard working, honest, great people. But only an all-consuming industry could generate this kind of response from the families of my co-workers.
After my stint in banking, I left to start my own company which I've been doing full-time for nearly five years. And while banking provided the initial savings safety net to scale-up the business I couldn't imagine going back. For anyone interested in the full story of my departure from finance, I wrote about it in the post below:
The hours, lifestyle, verbal abuse, sociopaths and general disregard for virtually everything except making more money, will eventually wear you out. As an influential managing director at an investment bank once told me in a moment of honesty, "This business brings out the worst in everyone."
He mentioned to me that it had been a long day for him, so I asked him what long was. He told me he'd been working for 17 hour, and that he's used to working only 15. Aghast, I said wow! That's a lot of work, but at least it's Friday. He told me it didn't matter, because he worked 7 days a week. He also mentioned that the last day off he'd taken had been over a month prior, and that it was because he was sick.
I remember thinking, what's the point of living? This man works all day every day so that he can live, but he's only living to work. And honestly, that's exactly what I see in the bankers. Yeah, you make an enormous amount of money, but your job makes you so miserable that you don't even enjoy having it, so what's the point?
I've felt compelled to put down a book and get a drink with friends as often as to postpone travel to fit around a client. Just because someone leads a different life from the one you choose to or would choose to if uninhibited doesn't mean they're miserable. Watching Jiro Dreams of Sushi where Jiro, a world-renowned sushi chef, takes pride in doing the same thing every day for the rest of his life (his words) helped me reflect on that.
Obviously his lifestyle is one that I won't ever understand. I suppose some people's minds just work differently. But then again, studies show that the happiest people are those that have warm networks of friends and family that they speak to regularly, and I can't imagine that making money for your family (at least past a certain point) is better than simply spending more time with them.
The ability to operate solely in the top tier of the Maslow pyramid is a multiple sigma anomaly, not a fact of life. For many people "enjoying life" is knowing you've done all you possibly can to make sure your children will live a better life than you.
Of course it does. The marginal utility of money specifically states that each additional dollar earned has less of an effect on the person's happiness and feeling of accomplishment. This is why "more money" stops being a motivator after a certain point.
It's not too different in tech. I have developers who work for me who I have to pay $250k/year + serious benefits, because if I didn't, I know they'd either start their own company or be poached by an early stage team. For me the challenge is figuring out who the real rock stars are from amidst the vast sea of wannabes.
If a hedge fund returns 15% at 10% volatility that is much, much better than the market.
This describes the feelings many of us have towards grad school; by now there's a rich anti-grad school lit that I've contributed to in my own small way. [1] Interestingly enough, here people are risk-averse too—but instead of being awesome, the money is terrible.
The interesting thing is that very people seem to be leaving, despite the money issue, which makes her last point less analogous.
[1] http://jseliger.wordpress.com/2012/05/22/what-you-should-kno...
Both of these are antitrust issues at their core. Banks need to be broken up, so that they are no longer "too big to fail." From there, we don't need to bail them out, so they can actually fail, which means they will stop taking such outrageous risks and over-leveraging themselves.
I honestly don't care if some 28 year old trader is making more money in a year than I'll see in 20. But I do care that I backstop his risk with my tax dollars, and he suffers no personal loss whatsoever if the risk materializes.
Tell that to the Bear Stearns equity holders, who were 99% wiped out, or the Lehman Bros. equity holders who were completely wiped out.
>"Banks need to be broken up, so that they are no longer "too big to fail.""
Fine, if you want to cripple long term economic growth by requiring banks to hold far more liquid assets. Or, they can rely on the Fed as the lender of last resort to step in when they need liquidity (which the Fed has done). I prefer the latter.
Goldman Sachs? Citibank? AIG (to pay back Goldman Sachs)?
False. TARP has been paid back, at a small profit, to the FED, which returns the money to Treasury. The auto companies are a black hole of subsidies, but that's another story.
http://en.wikipedia.org/wiki/TALF
"The way TALF loans were set up, 100 percent of any profit is retained by the borrower, but the Fed and the Treasury absorb any losses."
I could work at a local council, or (gasp!) a startup, but I think arseholes can work in any industry, and if I'm going to have to deal with people like that I might as well get decent money for it.
Plus if you're going to work at a non-software firm, it's probably the most exciting industry you can work on. I can't imagine feeling very motivated writing software to manage the manufacture of, say, baked beans.
Then go out and try to find a banker, trader or mortgage person and try to get them to accept some actual blame for the highly-leveraged, taxpayer subsidized horror their profession periodically unleashes on the world. It's surprisingly difficult to do, given the obviousness of the problems.
To a degree, I can see it happening to myself - you simply cannot understand it while you are still in college or university and think all positive and idealistic and it is hard to grasp even when you are working a regular paying job... but once you get the bigger pay it is very very hard to go lower and it requires a LOT of very neutral, objective and conscious decision making that most people are probably not capable of because it is hard switching off your own feelings and gut reactions.
I can say that in the last three years I have gotten a front-row seat to seeing why a lot of people are so miserable and I don't even have it THAT bad; plus I have definitely become changed in ways I would never have thought possible 3-4 years ago when I was still working in startup-paradise.
I'm under the impression that algorithms and data structures knowledge is very important. But do software engineers in finance really deal with this on a day-to-day basis?
the closer you are to the money (front office vs back) the more money you make, but the more stress you get
the smaller the firm, the more freedom/autonomy, the bigger the firm, the more beauracracy you have to deal with. Imagine working at microsoft vs your own startup.
Other than that, it's not much different than any other technology job
I've worked in finance as a software engineer at several large investment banks for many years. The software consists of a mash-up of legacy stuff incorporated into generally very "safe" architecture choices. Unless you work in some highly specialized (and very rare) type of group, you won't be making any decisions as to what language to use, database, environment or any other project specific choices. They do not value the product. Expect no documentation of anything and consider it a gift if you ever see an internal wiki. While documentation may be the exception in some circles, any developer worth his salt knows the true value of writing stuff down, or at least commenting code, so you can come back to it at a later date. This isn't the type of software environment where they're going to appreciate the years you spent in school, learning how to measure time-complexity of various algorithms. For the most part, those algorithms are already written and those data structures have been decided upon for you. I literally have conceived maybe a handful of algorithms over the years.
You will spend your time maintaining hacked together code that was assembled by literally 30 other people who came and left before you. There will be little to no testing before software is deployed into production. You will likely not have an adequate test environment. If you are lucky enough to have a test environment, chances are that it won't resemble production in any meaningful way. This test environment may be called "your development environment." You will work with many people who do not understand, nor respect, the art of writing good software. You answer to "the business," ie: traders. Traders for the most part, will not appreciate what you do. Its too nebulous for them, and most people not in tech at the IB, for that matter. I'll never forget when we rolled out our new auto-trading system and the IBank laid off several dozen traders that day.
Depending on how your group is organized, you may be on call 24/7. Some groups have coverage structures, with people covering production software in shifts. Expect to be interrupted on holidays. Expect to work on at least one of the following holidays every year: Xmas, New Years, Thanksgiving, Easter, any other national holiday. Projects will be scheduled poorly. Timelines will exceed aggressive-scheduling and wander into "insane" territory. This may be the norm, depending where you work. The quality of the software you write will suffer for it. Your lifestyle, health, social-life, family-life, interests, hobbies and life will all suffer for it as well.
Politics will rule everything. Politics will stifle your productivity, unless you have a great manager who keeps you away from all of it. Unfortunately, I've never met a great software manager in finance. I'm sure they exist, but I've never had one. There will be many meetings. The meetings will run on and on and many topics will be discussed that concern none of you, which could have easily been hashed out in minutes over email. But you will spend hours in meetings because thats the corporate attitude, and finance is as corporate as it gets. The excessive meetings will impact your productivity and result in regular 12-14 hour days, year-round. You'll have far less resources than you require to do the job even adequately, because the people making the decisions about funding view tech as a cost-center. You'll frequently realize, when you read hacker news, that there's a great many exciting things happening in software outside of the world of finance software. You will see none of these exciting things.
I know this seems like a long, negative entry, but I assure you - my experience was not unusual. I strongly caution anyone passionate about software against going into finance software. I've worked as a software engineer and (unusually) in the front-office on the trading side.
Then again, the culture and the work varies in different cities and in different roles. In London we tend to get excellent developers joining the industry (traditionally there hasn't been much else for good developers locally) so you can typically expect to have skilled colleagues. And the closer you get to the front office, the more money there is for IT projects, and the more remit you have for writing good software.
I think finance is a great place to work (yes, even as a full-time programmer) if you have a strategic reason for being there (VCs like financial experience, there are some interesting machine learning problems) but I would say that, in general, you're best off if you know you have the social and political skills to get the best work and, if you don't, finance is not likely to treat you well.
I worked exclusively on front-office systems nearly for the entirety of my time as a developer for an investment bank. I didn't even get into how there are very few opportunities for growth and other, more HR-related/culture aspects of the job.
I'm glad you have good things to say about your work! I just wish I could describe the time that I and my colleagues spent at those banks in a better light. It was utterly life-altering when I left. I felt like I was living for the first time since college.
Like: signing up for a $140k/year "consulting" gig, but having a secretary pick your sole "workstation", a 12-inch, low-memory Lenovo model normally given to sales people.
Or: going through an grueling process ostensibly designed to assure that you have truly l33t skills in analytic and quantitative thinking skills... only to be herded into a dungeon-like cubicle farm with crass overhead lightin, poor ventilation, non-stop chatter and blaring overhead TVs, making it impossible to think straight for more than 5 seconds... where you end up plugging away for 10-, 12-, 14-hour days.
Or: being hired ostensibly for your senior-level experience in platform X, only to have every decision "vetted" by utterly inexperienced H1-Bs, whose personal coding style reminds you, without irony, of something you last flinched at seeing on The Daily WTF (http://thedailywtf.com/).
Not to mention: not infrequent episodes of not just hot-headness, but outright bullying and borderline psychological violence.
And generally: a stifling atmosphere which makes it basically impossible to have an honest conversation with anyone in upper management about the day-to-day realities of the environment they ostensibly expect you to be delivering this supposedly highly valuable, mission-critical software under.
Granted, this was at "mid-tier" companies, and I (thought) I knew what I was getting into. Still, the reality was far ruder -- and far more weird and just plain absurd, at times-- than any of my worst expectations.
The biggest problem with working in non-software companies is that, software engineer salaries are treated as overhead, not investments. This means that they aren't going to spend tons of money to hire the best and brightest talent, they are going to hire the cheapest labour that can get the job "done".
A typical day goes like this:
8.55am I arrive at my desk. Login and start checking email.
9.15am Head off to the cafeteria to buy breakfast (yep, no free food!)
9.20am Eat at my desk whilst reading clicking through my inbox. We get a lot of email. Some people on my team are already on conference calls with Bangalore.
9.40am I open up Eclipse and start working on my assigned project. This goes on till about 6pm. The coding is actually the easiest part. It takes a lot of effort to go through the rest of the process - code reviews, testing (all kinds of testing), UAT, sign off. The PM constantly comes to ask for your ETA (oh, you need to fix this threading issue? How long will that take you? Like an hour?)
12.30-1pm Lunch at my desk. Although sometimes when I have less things to do, I get to go out and spend 45 mins enjoying a burrito.
1pm - The New York team comes in. The 'serious' conference calls and meetings begin. Over the rest of the afternoon, about 2.5 hours are spent on conference calls.
6pm - The contractors leave on the dot. I can leave on the dot, too, but then everybody hates me. It's considered acceptable to stay at least till 6.15pm. Sometimes when I have issues (e.g. I have the fortune of doing production support that they) I might not leave till 8pm.
This is my typical non-support day. A support day is similar, except you have to add a couple of hours of nightmare in the middle.
About the work: Varies team by team. Some teams make iPad apps for bankers. We work on large-scale distributed systems. We have hundreds of processes that exchange and persist information with a few dozen external systems, as well as internal systems to the firm. The biggest challenge is the complexity of the flows and scaling this architecture to peaks.
I'm sad to say, but you will rarely implement fancy algorithms. A good knowledge of messaging protocols, data structures, databases and concurrency is very important though. And the thing that is essential is business knowledge.
So, if you had to make a good old Pros & Cons list, it would go something like this:
Pros: 1) Excellent compensation for the average developer.
2) You get to work with smart and dedicated people.
3) You'll rarely have time to kill.
4) Looks good on your CV, provided you work for a top firm.
5) The work can be interesting, if you're inin distributed systems and architectures.
Cons:
1) Stressful when doing support. A lot of money is on the line.
2) Compensation is very highly correlated with firm performance, which, in turn, is very highly correlated with market performance.
3) You can earn more and work less elsewhere, if you know your stuff. Not really much recognition for "star developers".
4) You'll be using only tried and tested technologies. Good luck getting permission to use any of that RoR you picked up on the weekends.
5) There is A LOT of process.
6) Promotions seem to be based around people's perceptions of you, rather than the quality of your work.
7) Combining (5) and (6) leads to a lot of office politics.
and, finally, (8) If you get unlucky and hired into a shitty team, you're going to have a bad time.
But the best part for me so far is that every once in a while something truly bizarre happens. This makes the rest of my week.
My advice, to survive in that industry as a software engineer, one needs a healthy dose of distrust towards management and a good sense of humor.
Programming is awesome, but 99% of the software industry is a toilet. Finance at least pays for your suffering in cash you can spend rather than lottery tickets.
I suspect that any software engineer working in a large company (in terms of # of employees) will have the same routine.
Also my job has all the cons, and none of the pros...
One the other hand I have friends with degrees in mathematics and serious finance backgrounds whom are working in a more R&D style environment and they have an entirely different situation. They work a lot more with hard algorithmic and math based problems and given more freedom to pick their own tools and define their own work.
You have to convince people you're more than "just a programmer" to get good work. A quant, a crack low-latency guy, a data scientist, possibly an "architect". By age 30, if you're not some X (as in: "X Who Programs") along with being a good programmer, you start losing.
Or, you could work in an industry where software engineers are respected and valued because what they do is part of the core business. If you work at a company whose core business is X and you don't do X, then of course you are going to feel peripheral-- because you are. In computational finance, if you're not a quant, then you're just a member of the support staff and should expect to be treated as such. I fully believe that those firms would contract out this work if they could, but because of confidentiality reasons, they can't.
The across-the-board startups = good / finance = bad mentality makes no sense to me. It may be true in the aggregate, but I haven't seen enough data and what I have seen shows no correlation. If you're in the back office of a huge bank, you're probably not in the best environment for an engineer. On the other hand, high-frequency trading requires a certain technical acumen that's fairly rare and that people will pay a lot for... and if you're really good at that stuff, a lot of the politics works itself out.
I think it's essential to become an XWP ("X Who Programs") even in mainstream software shops. Unless you have a national reputation as a great software engineer, you need some credibility that's independent of your performance as an engineer. Why? Because if the architecture's bad or nonsensical, good engineers won't perform well because they don't think in FactoryFactories and inheritance hierarchies. You need control of the architectural landscape in addition to engineering ability to perform at a 1.5+ level. Otherwise, if you take a typical software job, you're at the risk that you perform at a mediocre level because of architectural decisions made by other (less competent, but more powerful) people and never be able to convince people that you can take the architectural reins. You need that X (data science, project management, quant finance) to convince people that you're substantial regardless of your performance in the particular environment that's given to you.
I am doubling down on data science, machine learning, and statistics right now. (I was a math major in college, and had a couple of 50+ Putnam scores, but I've been away from math for too long and have to review linear algebra to make sense of a grad-level textbook these days.) What I learned in my last startup (where the unambiguously best engineer was demoted and an overpromising mid-20s bullshitter became unofficial VP/Eng, and threw the company into a "rearchitecture" that nearly killed it and ruined the culture) is that architectural issues get political fast. Very fast. Like, tachyon fast. To perform well as an engineer, you need to influence (and, one hopes, to improve) the architectural landscape, and you need some "hook" that is independent of said landscape in order to convince people that you're smart enough to change it as you need.
Well, it wasn't essential to Linus Torvalds, or Doug Cutting, or Joel Sposky.
If you enjoy data science and machine learning, do data science and machine learning. There's a lot of cool stuff going on in that field. But don't use it as an excuse to look down on people in different fields. There's too much of that going on already (and yes, developers do it sometimes too.)
Certainly in Spolsky's case I don't think he writes much if any code at Fog Creek or Stack Exchange. Torvalds probably still codes a fair amount, but certainly when it comes to Linux most of his value comes from the architecture and management side of things rather than the lines of code he writes.
I had a friend in college who was extremely proud of his double major in biology and computer science. He went on to get a PhD in bioinformatics. He was fond of telling me that being "just a software engineer" would never be as exciting as the work he was doing in his specialized field (not going to go into details, but it was related to pharmaceuticals.)
A few years later, the pharmaceutical industry is in a slump and he can't find a job in his specialized field. So he's working on web design for a while, hacking PHP etc. I'm doing the same thing I've always been doing, working on distributed systems, and it's been very rewarding. (Before you ask, I did try to find a job for him, but he didn't want to move to the west coast.)
The moral of the story is to do what you really like and are good at, and don't worry about people telling you that you absolutely MUST shift your focus to X to succeed (where X = being a manager, being a quant, learning biology, etc).
Oh, I don't look down on "pure" developers (as opposed to XWP) at all. I just think that it's hard to establish a reliable stream of good work on engineering cred alone, because the people who make decisions in most businesses can't tell the real deal from the charlatans in software engineering. The X is the "hook" that gets you enough clout to ensure you get interesting work and continue to get better as an engineer.
When I was 25 I swore it off. I was too young to sell versus build. But the cash was good.
If the salaries really go to $400k, saving up a million in the five years seems possible, and investing that with 5% annual return would give you a quite nice for the math grad-student type $50k salary for free.
I'm not really familiar with US costs of living, where I come from $50k is an upper middle class salary. Quick googling got me 5k as the ballpark for the health insurance fee for a single person, and with a family you'd probably have a spouse chipping in, so that doesn't look like a dealbreaker. Housing is tricky, apparently "live in an apartment, don't have a car" doesn't work in the US for some reason. You could always move to a rural area with cheap housing, but that does get a bit extreme, and then you'd need to figure out the costs of getting everywhere by car.
How good are you against peer pressure?
Everybody else is living it up; you sure you can get by being the only one bringing PBJ for lunch?
People who bash finance are comparing it to some R&D Valhalla that doesn't exist anymore (except perhaps at a few cultural leaders like Valve) where everyone has complete autonomy over their work and no backstabbing exists because everyone is thrilled about what they do. If you compare typical finance jobs to typical real-world software jobs that are available to people without more published papers than years on this planet, then finance wins. That's not to say there aren't bad finance jobs (there are) or that finance is without its problems.
The software industry sucks. Programming is fun, but the software industry itself is a horrible place to be unless you have an edge that can consistently guarantee you a stream of high-quality work and no bullshit, and there isn't a much good work to go around in this industry, so that edge really has to be solid. The way you get good at software (and one of the things I admire greatly about software engineers is that a lot of us genuinely care about being good at our jobs; that's a rarity in the corporate world) is to get good work, but you can't get good work unless people think you're good. Hence, there's that need for some sort of edge when you're starting out. Finance, for its flaws, is a pretty good place to get this sort of edge: it gives you a certain credibility that helps you escape "Just A Programmer" mediocrity.