Hacker News new | ask | show | jobs
by sc0rb 4846 days ago
I know of three PhD's in comp sci that went straight into Goldman Sachs (and one hedge fund) where they immediately started earning far more than those of us that left Uni with our Bachelors.

They work in high frequency trading mainly using Java.

4 comments

Interesting. I wouldn't have though Java was suitable for HFT due to garbage collection pauses playing havoc with your system determinism and performance reliability.

I supported a derivatives trading system written in java that was canned due to performance issues, and where I am now we had java FIX protocol gateways that we've replaced with C++ components, again for performance reasons.

I'm not saying java has performance problems in general, I do understand that for many applications it's a good and performant option, but when you're dealing with sub-millisecond response times it has issues. If anyone is using Java for applications like this, I'd love to know how they get round these issues.

Nah...there's tons of workarounds these days which make things way faster / less latent. Couple quick examples:

* look at memory mapped data in java (basically using sun.misc.Unsafe lets you deal with things like malloc and free)

* look at increasing use of primitives and collections that utilize primitives appropriately

* properly profile / size your eden space

yada yada ... i think a lot of HN people have generally just wrote off java as not as fast as C, not as productive as python/ruby, and not as exciting as lisp, haskell, FOTM. Java's a fine tool like anything else...just need to use it appropriately.

Check out LMAX. They've built an exchange that runs on Java. Their engineers are constantly talking/blogging about getting Java to perform well. "Mechanical Sympathy" is the buzzword they've coined.
> garbage collection pauses

AFAIK, mark-and-sweep GC was removed from the JVM years ago (except on Android, where Dalvik used it until 2.something). I can't help with the rest of your post though.

I'm surprised they'd do it all in one language. High level decisionmaking in a high level language, simple low level execution in a low level language.
Plenty of word class trading systems are running Java.
True. My point was a bit more subtle: those of my (former) co-workers with PhD's in physics or maths were extra extra smart and really great programmers... But they didn't start their PhD wanting to go into finance! You start because you want and love to do real research. As a bonus there are skills that can (also) make you big money. But there are quicker ways to the Goldman Buffet.
Just like I didn't start my Computer Science degree thinking I would end up working with large ecommerce platforms that power some of the worlds most recognisable brands websites.

But here I am.

Most PhD people I've met (selection bias) don't do work that's too closely related to their degree (just like I don't, Enterprise Java dev != comp sci). They do all make a lot of money though.

Were they actually using anything specific from their PhD? The research they did was directly relevant to some part of the HFT application?
No. That's got nothing to do with anything though. My wife has a degree in maths and works as a project manager at a big consultancy, I have a degree in comp sci and write Java all day. How many people really work in areas closely aligned with what they studied? I've used to no discrete math or graphs where I work...

I'm just showing you how it's possible to do a PhD then get a good paying job at the end. This removed the worry of missing out on 5 years of salary.

I'm just curious as to why an employer is keen to have people with PhDs - simple credentialing to make selection easier?
Maybe that's one reason. I think there are other reasons too.

Why do people want degree graduates? Because it shows they can finish things, because it shows they are smart? because it shows they have drive? Many reason are given for hiring grads.

Somebody with a PhD in comp sci would have pretty much proven they are good with very difficult problems and have the drive to see things through to completion.

What qualities do you think it takes to finish a PhD? Some employers seek out those qualities and a PhD is a good indication that you have those qualities.

and in doing so sold their souls to the devil.
Why wouldn't you for a few years with an exceptionally good salary and immense technical challenges to overcome?