Software Engineer - Distributed Storage & Databases
Job Description
[Up to c. $475k Comp Package | Hybrid Working]
Role Overview
We’re representing a leading quantitative trading firm with one of the most advanced research and compute environments in the industry. The firm’s research platform depends heavily on large-scale data storage, distributed systems, and high-performance tooling that enable researchers to test, refine and deploy trading ideas at speed.
This role sits within a specialist engineering team building the storage libraries, database-style systems and distributed infrastructure used by research teams across the business. You’ll work primarily in C++ within a Linux environment, designing systems that need to remain simple, reliable and performant even under scale, failure and heavy research demand. It's well suited to an engineer who enjoys both low-level systems detail and higher-level distributed architecture - someone who can reason about trade-offs, build robust software, and create tools that make sophisticated research workflows faster and more effective...
Key Responsibilities
- Design and develop distributed storage systems, libraries and tooling used by research teams at scale
- Build high-performance C++ software in Linux environments, with a focus on reliability, maintainability and efficiency
- Work through distributed systems challenges including fault tolerance, replication, sharding, failure handling and consistency trade-offs
- Partner with research users to understand data access patterns, storage bottlenecks and future platform requirements
- Improve the performance and resilience of systems that support large-scale compute and research workflows
- Evaluate modern approaches across databases, distributed filesystems, indexing/search systems and storage infrastructure
- Contribute to architectural decisions around how data is stored, retrieved, distributed and protected across the research platform
- Debug complex issues across operating systems, networking, storage layers and application code
- Collaborate with a small team of highly technical engineers while taking strong ownership of delivery and quality
What You’ll Bring…
- 4-9 years’ experience in software engineering, distributed systems, storage infrastructure, databases or low-level systems development
- Strong C++ programming experience, ideally with regular use in production or performance-sensitive environments
- Solid understanding of distributed systems concepts such as fault tolerance, sharding, replication, robustness and failure-mode design
- Experience building reliable, maintainable software used by technical internal users or infrastructure teams
- Experience building databases, distributed storage systems, search infrastructure, filesystems or comparable data-intensive platforms
- Strong Linux / UNIX skills, including comfort working close to operating system, networking and performance layers
- Ability to reason about low-level implementation details while also understanding broader system architecture
- Strong computer science fundamentals and a practical approach to designing simple, durable systems
- Strong ownership mindset and ability to operate effectively in collaborative engineering environments
- (Preferred) Exposure to Python alongside C++ for tooling, scripting or research-facing infrastructure
- (Preferred) Background in high-performance computing, trading technology, large-scale infrastructure or research platforms
...
Apply for this role
All fields marked with * are required.