site banner

Small-Scale Question Sunday for February 18, 2024

Do you have a dumb question that you're kind of embarrassed to ask in the main thread? Is there something you're just not sure about?

This is your opportunity to ask questions. No question too simple or too silly.

Culture war topics are accepted, and proposals for a better intro post are appreciated.

3
Jump in the discussion.

No email address required.

Does anyone have advice for transitioning from FAANG -> finance/HFT?

I know some c++, but not a ton, so "learn more c++" is the obvious first step. Beyond that, unclear to me what to do. I'd like something fully remote that pays better than FAANG and is less soul crushingly boring. Something with high performance code instead of just tons of business logic.

Relatedly, I'm about halfway from (1-2 years away from) promotion to senior. Worth sticking around to get it, or jump ASAP? Leaning "stick around" to hedge my bets and have time to study.

Mostly unrelated to answering your question. I'm too low IQ for FAANG so yeah.

But is C++ a thing in HFT? I thought most HFT guys were just using Python given the limitation is mostly network latency and not necessarily compute. And given that, shouldn't they just use a more web friendly low level language like Rust or Golang?

I'm always a bit taken aback when I hear of yet another group of people other than game devs or embedded devs torturing themselves with C++ in 2024 when so many equally performant alternatives exist.

I'm not an expert on C++ or HFT, but I think in short: yes. Very much so. The main thing. When I've interviewed in the past (Citadel, Two Sigma, etc), C++ is a huge topic. Outside finance, I get language agnostic leetcode type things (and usually answer in Python). In finance, details of C++ are the majority of the interview topics. E.g., implement your own shared_ptr class.

I think that while there are finance jobs where Python (no doubt wrapping Pandas or similar, and therefore C++) is adequate, something faster/more customizable/more predictable is usually needed. Golang is garbage collected, so the pauses will ruin your tail latency. "Web friendly" is not relevant at all to HFT.

Rust is an option - it should in general have equal control and performance to C++. But, the institutional knowledge and ecosystem are just not in the same league as C++. The basic rust tradeoff vs C++ is that you get more safety, but it's harder to get anything done. Maybe a sufficiently good Rust programmer can be actually more productive, since the safety lets you avoid thinking about certain things, but there's vastly more adequate C++ programmers than Rust ones.

Idk if "too low IQ for FAANG" was a joke or not, but I think "medium IQ, high conscientiousness, high willingness to be bored for money" is more the requirement. Sure, there are people doing cool shit who need all the IQ they can get, but it ain't most of us. For every engineer optimizing the company-wide database engine, there's thousands shuffling bits from A to B.

If you’re interviewing with Citadel (and presumably didn’t get the offer, hence your question), surely you can just ask them what you were missing that the accepted candidate(s) had?

Almost nowhere I've ever interviewed gives feedback. It's a legal/reputation risk for no gain.