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

mrdivorce


Total Posts: 2
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 https://www.amazon.co.uk/C-Concurrency-Action-Practical-Multithreading/dp/1933988770.
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 https://www.cs.bham.ac.uk/~exr/lectures/opsys/10_11/lectures/os-dev.pdf.
There's Minix out there too for more gnarly challenges https://www.amazon.co.uk/Operating-Systems-Implementation-Prentice-Software/dp/0131429388

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!

darkmatters


Total Posts: 66
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.

mrdivorce


Total Posts: 2
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

pj


Total Posts: 3317
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

indiosmo


Total Posts: 3
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 (https://access.redhat.com/sites/default/files/attachments/201501-perf-brief-low-latency-tuning-rhel7-v1.1.pdf).
Previous Thread :: Next Thread 
Page 1 of 1