About the Role
We are seeking a Software Engineer to design and optimize fast-trading systems, working closely with quantitative researchers and developers. The role focuses on high-performance, low-latency systems, primarily built in OCaml with some C and C++.
Responsibilities
- Design and optimize fast-trading systems.
- Work closely with quantitative researchers and developers.
- Understand, interpret, and improve application performance using hardware performance counters and profiling tools.
- Address performance challenges in languages with managed runtimes.
Requirements
- Experience with low-level systems programming and optimization.
- Experience with network applications requiring extremely low latency and high throughput.
- Ability to understand, interpret, and improve application performance through hardware performance counters and other profiling tools.
- Thorough understanding of modern computer architecture (e.g., x86 AMD and Intel cache hierarchies).
- Some experience with fast-packet processing in user space and common kernel-bypass implementations (e.g., Solarflare OpenOnload/TCPDirect/ef_vi, Exablaze, InfiniBand verbs, DPDK) is ideal.
- Experience working around the performance challenges of languages with a managed runtime (such as Java or C#) is a plus.
- Familiarity with a typed functional language is a plus.
Skills
- Low-level systems programming
- Optimization
- Network applications
- Low latency
- High throughput
- Application performance analysis
- Hardware performance counters
- Profiling tools
- Modern computer architecture
- x86 AMD and Intel cache hierarchies
- Fast-packet processing
- Kernel-bypass implementations
- Managed runtime performance challenges
- Typed functional languages
About the Company
- We build systems primarily in OCaml with only small amounts of C and C++.
