A leading global quantitative investment firm is looking for a Senior C++ Systems Engineer with deep expertise in low-level programming, memory management, database internals, and high-performance computing.
This is not a standard application-development role. You will work close to the operating system and hardware, solving complex engineering challenges involving memory allocation, concurrency, storage, data access, and large-scale computation. The systems you build will support quantitative research and portfolio-management workflows where performance, scalability, and reliability are critical.
The firm is undertaking a multi-year transformation of its core technology platform, offering the opportunity to take ownership of technically challenging projects and influence the design of its next generation of research infrastructure.
Key Responsibilities
- Design and develop high-performance, production-quality systems in modern C++ on Linux.
- Build low-level components supporting large-scale data processing, research, and computational workloads.
- Optimise memory allocation, data structures, CPU utilisation, storage access, and overall system performance.
- Investigate memory leaks, fragmentation, contention, latency, and other complex performance bottlenecks.
- Design scalable systems for storing, accessing, and processing large datasets.
- Develop multithreaded and concurrent applications using efficient synchronisation and memory-management techniques.
- Improve the performance, reliability, and scalability of existing distributed systems.
- Conduct detailed profiling, benchmarking, debugging, and root-cause analysis.
- Take ownership of complex technical challenges from architecture and design through to production.
- Collaborate with software engineers, quantitative researchers, and portfolio managers.
Required Skills and Experience
- At least 7 years of professional C++ software-development experience.
- Strong production experience with modern C++ on Linux.
- Deep understanding of low-level programming and Linux systems programming.
- Strong knowledge of memory allocation, object lifecycles, memory layouts, pointers, cache behaviour, and resource management.
- Excellent understanding of data structures, algorithms, concurrency, multithreading, and performance optimisation.
- Experience building high-performance, data-intensive, or large-scale distributed systems.
- Strong knowledge of database concepts, including storage, indexing, query performance, caching, and efficient data access.
- Experience using profiling and debugging tools to diagnose CPU, memory, concurrency, and I/O bottlenecks.
- Ability to write clean, reliable, and highly efficient production code.
- Strong problem-solving skills and the ability to work independently with minimal direction.
Highly Desirable Experience
- Database internals, storage engines, indexing, or query-processing systems.
- Custom memory allocators, lock-free programming, or zero-copy techniques.
- CPU cache optimisation, NUMA-aware programming, or hardware-conscious software design.
- High-performance computing or performance-sensitive backend platforms.
- Large-scale graph computation or graph-based data systems.
- Streaming, dataflow, or real-time data-processing platforms.
- Python development and C++/Python integration.
- Working with very large datasets in computationally intensive environments.
Why Apply?
- Work on challenging problems involving C++, Linux, memory, databases, concurrency, and distributed computing.
- Build core systems supporting large-scale quantitative research and investment operations.
- Contribute to a major multi-year redevelopment of a global technology platform.
- Collaborate with highly technical engineers, researchers, and portfolio managers.
- Join an intellectually driven environment that values technical depth, ownership, and original thinking.
- Previous experience in financial services is not required.
- Highly competitive compensation with a performance-based bonus.
This role would suit a senior C++ engineer who enjoys working beneath the application layer and has a genuine interest in how systems manage memory, storage, computation, concurrency, and data at scale.