Our client is a leading high frequency trading firm with offices in NY, Chicago and London. We are seeking a C++ software engineer to join the high frequency market making team in Chicago. The tech stack used by the team is C++/Linux Verilog. The role will involve analyzing code and making improvements to low latency applications in order to reduce latency and optimize bottlenecks. An ideal candidate will have 5+ years’ experience working up and down the stack.
Requires:
- C++11/14
- Multithreading
- OpenOnload
- Multicast
- Detailed understanding of the Cache Memory Hierarchy
- Time Stamping at Atomic
- POSIX Threads for Multi-Core and Parallel Systems
- Valgrind, GDB, TCP Dump, Callgrind
- How to stride memory in a cache friendly way
- Taking advantage of hardware prefetching
- Experience preventing cache thrashing
- Making micro optimizations and doing things with bitfields and bit mask / shift operations
- Loop unrolling
- Vectorizing calculations for math related code
- Branch prediction through profile guided optimization.
- Writing inline assembly
- Using lock free data structures
- Aligning critical data to cache line width to avoid false sharing and the cache coherency overhead
- Use busy spin techniques
- Pinning hot threads to specific cores and using core shielding techniques like isolcpus
Education:
- BS / MS / PhD in Computer Science
If you would like to be considered for the position of C++ Software Engineer or wish to discuss it further please leave your details below. Your resume will be held in confidence until you connect with a member of our search team