by marksu on 7/31/11, 3:33 PM with 229 comments
by zedshaw on 7/31/11, 4:45 PM
The supposed "C++ optimizer" guys are some of the worst. They're the guys who go off and make algorithms they think are blazing fast, and sure for one tiny little use maybe, but then when you actually see the code it's a huge convolute mess for nothing. It's usually riddled with bugs, not in source control (Clearcase), only if it is only because the Compliance Dept. told them to, and they refuse to share because they're too damn competitive.
I've even seen projects by some of the top guys that were built by hand. No make file because the dude didn't trust make.
Don't even get me started about these jackasses that think their huge monolithic shitpiles of Java code are somehow superior, yet the only reason their code can actually run is because some bank sunk millions (and maybe billions) into infrastructure just to run that crap even moderately fast. I had one project where the damn process used so much ram per request they had to go buy an Azul box just to make it run even at 2 req/sec. That was their "cream of the crop" coders.
Finally, they constantly do this thing where they say, "Oh man my code is so awesome it's written in C++ and is so fast. No you can't see it. Oh but I make $500k a year!" They equate how awesome their code is by how much they make, but rarely have any idea of what other people's code is like.
Honey, if all you can make from your corrupt financial masters is $500k while they make billions and trillions then you're not a very good coder. And if I can't see your damn code, then you're a damn liar.
Take it from a guy who thought he'd run into some quality in the finance world. There is none, they just have so much money they can't help but make tons of it.
by jasonkester on 7/31/11, 4:48 PM
Given the ability to charge $100/hr for your time (which is what this guy's rate works out to), would you prefer to make:
a.) $500,000 by working 100hr weeks
b.) $250k by working 50hr weeks
Me? I tend to lean toward secret option c: make $100k by working 25 40hr weeks, then spend the rest of the year squandering it on a beach with tall cold beers, good surfing/climbing and good wifi.Gotta keep them priorities straight.
by hugh3 on 7/31/11, 4:19 PM
1. Be really smart
2. Be willing to do something that's deadly boring to most smart people
Me? I'm a scientist. I'm not gonna write your goddamn binary tree pricing algorithm or remove your varicose veins or argue about some dull point of legal text in court. But I'm sure I'd be a lot richer if I did.
(In other news, man, those grapes sure look sour, I'm glad I can't reach 'em.)
by bfung on 7/31/11, 4:48 PM
by orijing on 7/31/11, 4:46 PM
In the end, while the salary/potential bonus for the fund was very enticing (despite not having graduated yet), I stuck with the middle-of-the-road tech company. (I also looked at Google and Dropbox but decided to go to FB). Google was desperate for people, and threw money at everyone who had a Facebook offer. I like that they offered $$$, but I knew that most people there aren't compensated as well, which suggested that future compensation might not be as enticing. Dropbox was actually really cool (the people I met there), and I was thinking about it a lot, but in the end, I just wanted to stay where I've been, and work in Palo Alto. (I know, it's weird: All my friends want to work in SF).
But it sucks, because while everyone thinks I took FB for the money ("It's pre IPO!"), that's the farthest from the truth. In fact, they're so surprised that I decided not to work in New York. "Are you stupid? That's more money than any of your peers make out of college!" Not to mention, the people there I met through two straight days of technical questions (compared to Google's easy-peasy 4, 45 minute sessions) were some of the smartest I've met. And I like working with smart people.
I was afraid that if I'd gone on that route, it would affect me as a person. Don't get me wrong: I've studied financial institutions and believe that they produce value, but in the end, it's more awesome to tell friends and family that I ship products rather than arb derivative contracts. I figured, the money will come.
What the hell are you gonna do with 500k a year, anyway?
by wallflower on 7/31/11, 3:54 PM
My math abilities will never ever approach my friend's. If he is not confident about his ability, it speaks volumes to me about the ability and sheer analytical horsepower of some of those working in HFT.
Yes, they may be financial wizards who cause far reaching effects but they are doing what challenges them.
by cletus on 7/31/11, 4:52 PM
1. Traders; and
2. Non-traders.
Engineers who are traders are typically called "quants" (quantitative traders) as they write software that employs trading strategies to make money, as one or more of spread trading (trading between the bid-ask spread), prop trading (taking a position in the market) and arbitrage (of which HFT is merely the latest incarnation; some may dispute this definition).
Traders of all kinds have their bonus defined as a percentage of the profit they make. That percentage can be as high at 10%. In 2007 there were some Wall Street traders who walked home with $50m+ for the year. I remember seeing an AmA on reddit from a quant who took home $20m.
While maths is obviously important, it is not (IMHO) as important as psychology. It takes a special kind of individual who can hold a position worth billions of dollars and make rational decisions. Human psychology is typically completely wrong for trading: people hold on to losers too long ("I'll sell when I get my money back") and sell winners too soon.
I know enough about myself to know I could never do that. Some can and they get rewarded for it.
The second class of engineer, the non-trader, earns a respectable salary with benefits as compared to other software engineers. They are however the second worst paid employees at an investment bank (the worst are support people). All those business types who join IB, assuming they survive, will typically have a salary and career trajectory that will dwarf that of any engineer within a few years.
The only way for an engineer to make real money is to be a quant, found a startup or join an early stage startup. In the last few years the competition for engineers has heated up to the point where engineers are (or can be) more adequately compensated for their contribution.
The other thing that happened is the cost of seeding a startup went from $5m to $50,000 in the last decade, almost all of which is engineer time. This makes engineers just that much more valuable.
As far as not having some kind of positive impact, working in investment banking can be exactly that. People like to demonize the finance industry with some justification but it does a lot of good too.
You want to buy a house? Well the only reason you can get a loan is that investor (and/or depositor) funds are matched to you. In the last few decades securitization (MBS ie mortgage-backed securities) have revolutionized this market. On the other hand, the subprime collapse should, in my mind, lead to criminal prosecutions across the entire finance and insurance sectors.
Spread trading (or "market making") is also misunderstood. People see market makers as scalpers when in fact they're providing a valuable service: they're creating liquidity. The reason you can buy or sell shares at any time (rather than waiting for a seller or buyer to show up) is because of market makers.
IPOs are a complicated business. They're possible because of the finance industry as well. Although, curiosity, VC as it exists in the Internet startup world is almost completely unrelated to the finance sector. It's basically a byproduct of university endowments.
Still, I think I'm done with that industry (I now work for Google) typically because IB types aren't, in my experience, very nice people to work with plus you're near the bottom of the totem pole.
by MarkPNeyer on 7/31/11, 3:47 PM
by bignoggins on 7/31/11, 8:20 PM
by gte910h on 7/31/11, 3:59 PM
by scythe on 7/31/11, 4:37 PM
I don't know what good the money is if you don't ever take the time to spend it, though.
by benthumb on 7/31/11, 6:22 PM
by paganel on 7/31/11, 5:31 PM
Someone should post this next time the issue of "TDD and sudoku-solvers" comes up on HN.
by pdovy on 8/1/11, 2:09 PM
One of the big arguments in that Slashdot thread seems to be backlash over developers bragging about how they change software that handles millions of dollars in the middle of the day without any testing. Let me tell you, any HFT firm worth it's salt is very conscious about risk controls. I mean honestly, what kind of business are you running if you're routinely exposing yourself to potentially massive losses because of one developers error? Not one that would be around very long.
I can only speak to where I work, but we are not coding by the seat of our pants. Yes, traders do make intraday changes to their strategies, but they can do that because their software is backstopped by a tiered risk infrastructure that limits the damage their software can do.
by thinkbohemian on 7/31/11, 5:28 PM
by bwanaaaa on 8/1/11, 11:03 AM
by tmsh on 7/31/11, 5:39 PM
In response to the OP, zedshaw and a couple of others (who make good points), I'd say:
* obviously if you're good at your job in HFT after a while you don't have to work 100 hour weeks. People wait for you. There are levels of support. You still get woken up once in a while, but not if the firm is well structured and the support training / delegation is good.
* people are right in that the closer you are to the money, the more financial upside (and downside) you usually have.
* there are some very mediocre programmers, like in any sector -- however, they tend to not last as long because the trading side is very demanding (in terms of quality) and that filters down pretty quickly.
* do the people who really know what they're doing in the trading and HFT space have an OCD level of awareness of all levels of their code? sometimes. and it's easy to then conclude that this must not be found in other fields/areas. i can't speak for the rest of the world, but there are exceptions everywhere i've been.
in fact, i wouldn't even say it's the norm that in HFT people are more capable of deep diving into assembly or whatever. however, basically there are a handful of people in HFT who have been fortunate enough to grow up in that industry and have made mistakes without being fired -- and those people are very bright and careful about their code, and the large purchasing price for quality/reliability and quickness delivered does affect things on a macro scale probably. there's also basically a lot of hard-core russian programmers (from the many different technical universities in russia) who are quite rigorous with their code and trust the idea of finance more than the idea of startups or silicon valley even -- but this is probably a generalization (just my experience perhaps).
most software rewriting is trivial once you know what you have to do. and most software projects don't 'know what they have to do' until half way through. i used to work with a guy who made a point of rewriting ALL trading-related code every two years. another guy didn't trust OSS because he thought it was mostly hobbyist. they're both sort of wrong -- but it's a different culture/mindset. and these guys weren't idiots. respectively, they were some of the lead developers / architects for some of the largest algorithmic shops in chicago.
but my point is that programming for HFT or real-time trading requires that you really know what you're doing down to each line of code, so that you can react when things do break (and they will break). if you can't react quickly, you will eventually not find yourself on interesting projects and you might even get fired.
so ironically you have to slow down and really get to know how to do programming very carefully, and then scale that up so that you can react really quickly later (with something like binary search). this is a useful thing to practice in some ways. other people probably learn variants of it in other fields.
* the recession hit large parts of the financial sector pretty hard. i went back and visited chicago somewhat recently (now work in SV). i can't speak to everyone, but if i were an undergraduate or someone trying to figure out career trajectories for the first time, i would feel much more secure in even the startup space than in financial services at this point. because you know most of that is going to be replaced (with automated, distributed technology) in our lifetime.
by ebaysucks on 7/31/11, 8:39 PM
Stopped reading there.
by dadads on 7/31/11, 4:15 PM
by ntkachov on 7/31/11, 4:11 PM
by sliverstorm on 8/1/11, 2:07 AM
Not looking for money, it just seems like it'd be interesting to explore.
by Astrohacker on 7/31/11, 4:24 PM
by nazgulnarsil on 8/1/11, 8:14 AM
"rabble rabble moralizing rabble rabble!"
you people do realize that normal people think the same thing about software developers right?
by eurohacker on 8/1/11, 7:41 AM
then you think that something must be wrong with the American economic policy and tax system