Forums  > University  > Developing C++ knowledge for HFT  
Page 1 of 1
Display using:  


Total Posts: 12
Joined: Jan 2017
Posted: 2017-01-18 00:42
I was recently rejected for a quant/dev role at an hft firm, ostensibly because my C++ wasn't up to snuff. I want to rectify this but am unsure how to go about it, as I'm very ignorant of the field and am having trouble finding transferable books and problems to work on.

I've had a couple of ideas of what might help:
- Getting a grip on concurrent C++. I've been reading the Anthony Williams book
Coding up some ML models in C++ might be good practise for concurrency (with potential GPU involvement)

- Coding an OS? Possibly far too ambitious but I imagine it'd be perfect for getting to know the low level lay of the land. I found an interesting book which attempts something fairly simple at
There's Minix out there too for more gnarly challenges

It seems like the OS/systems programming path might be the most appropriate. If anyone has any books/project suggestions which might help hone the necessary low latency/low level C++ craft then I'm all ears!


Total Posts: 74
Joined: Nov 2010
Posted: 2017-01-19 18:23
Did you try asking them for feedback? Sometimes they will actually give it, which will help you improve.

Concurrent C++ might be a good start.


Total Posts: 12
Joined: Jan 2017
Posted: 2017-01-21 16:56
Their feedback wasn't too specifc, just that my C++ let me down. I held off asking what flavours they were looking for in particular but will give it a go. Certainly concurrent C++ sounds like a necessary skill. Thanks for the suggestion


Total Posts: 3490
Joined: Jun 2004
Posted: 2017-01-22 07:51
@ mrdivorce
It sounds like generic refusal. Try to get more info.
The real reason may be more mundane. Like the guys
didn't like your suit.

The older I grow, the more I distrust the familiar doctrine that age brings wisdom Henry L. Mencken


Total Posts: 13
Joined: Jun 2011
Posted: 2017-07-18 14:32
Agner Fog's website has tons of stuff on optimizing C++ code.
Optimization Manuals

While you should have a good understanding of concurrent programming, I don't think that's the main concern in HFT.
The critical path should (to the extent possible) usually run on a single thread to avoid the cost of context switches and having to copy stuff around anyway, so more important is understanding memory access patterns and choosing the right data structures.
Anything not critical can be passed to other threads to be processed asynchronously.

Understanding the underlying OS is also important, you should know how interrupts and the scheduler work for example, but you shouldn't need to code an OS for that, just google those terms and go down the wiki links.

Redhat has some stuff on tuning the OS for low latency as well (
Previous Thread :: Next Thread 
Page 1 of 1