At a Glance
- Tasks: Write and optimise high-performance Rust code for a decentralised exchange.
- Company: Join a small, fully remote team focused on cutting-edge trading technology.
- Benefits: Competitive pay, meaningful tokens, and a flexible work environment.
- Why this job: Make a real impact on high-frequency trading technology and enhance your coding skills.
- Qualifications: Experience in Rust, C, or C++ with a focus on latency-sensitive applications.
- Other info: Directly contribute to projects without unnecessary meetings.
The predicted salary is between 36000 - 60000 £ per year.
Want to work for a Decentralised Exchange? The matching engine is fast, but it’s not yet saturating the NIC. They’re dealing with single-digit microsecond hot paths, and there’s IPC overhead between components that shouldn’t be there. The order book logic is correct, but they are in pursuit of shaving off as much as possible.
Responsibilities:
- Write, profile, and benchmark Rust that lives in the #!(no_std) space. You’ll spend as much time looking at performance reports and cachegrind outputs as writing new code.
- Redesign the core matching loop to minimize branch mispredicts and improve cache locality. The current implementation is good, but you’ll know how to make it better.
- Eliminate serialization where possible. They use native structs and careful alignment; you’ll extend this to new message types.
- Own the critical path from the network ingress to the order book update. If a packet drops or latency spikes, it’s your job to find out why.
Qualifications:
- A working understanding of x86_64 memory ordering, cache coherence, and how to read assembly output. If you know what a store buffer is, we should talk.
- Experience writing latency-sensitive code in Rust, C, or C++. You can explain the trade-offs between a Vec, a fixed-size array, and a memory-mapped ring buffer in this context.
- The ability to work with hardware timestamps and understand NIC throughput limitations.
- Ideally, previous experience working in an HFT and/or building very high-performance exchange technology.
What they don’t care about:
- Knowledge of 10 different web frameworks.
The environment:
- Small, fully remote team. You’ll commit directly to main. No pointless meetings.
- Compensation is competitive and includes meaningful tokens. We all benefit if the exchange wins.
Senior Software Engineer (Rust / C++) in London employer: Durlston Partners
Contact Detail:
Durlston Partners Recruiting Team
StudySmarter Expert Advice 🤫
We think this is how you could land Senior Software Engineer (Rust / C++) in London
✨Tip Number 1
Network, network, network! Reach out to folks in the industry, especially those who work with decentralised exchanges or high-frequency trading. A friendly chat can lead to opportunities that aren’t even advertised yet.
✨Tip Number 2
Show off your skills! If you’ve got a GitHub or personal project showcasing your Rust or C++ prowess, make sure to highlight it. Potential employers love seeing real-world applications of your coding skills.
✨Tip Number 3
Prepare for technical interviews by brushing up on performance profiling and benchmarking. Be ready to discuss how you’d tackle latency issues and improve cache locality in your code. They’ll want to see your thought process!
✨Tip Number 4
Don’t forget to apply through our website! It’s the best way to ensure your application gets seen. Plus, we’re always on the lookout for passionate engineers who can help us push the boundaries of performance.
We think you need these skills to ace Senior Software Engineer (Rust / C++) in London
Some tips for your application 🫡
Show Off Your Skills: When you're writing your application, make sure to highlight your experience with Rust and C++. We want to see how you've tackled performance issues in the past, so don’t hold back on those juicy details!
Tailor Your Application: Make your application specific to the Senior Software Engineer role. Mention your understanding of x86_64 memory ordering and any relevant projects you've worked on that relate to high-frequency trading or low-latency systems.
Be Clear and Concise: We appreciate clarity! Keep your application straightforward and to the point. Use bullet points if it helps convey your experience better, especially when discussing technical skills and achievements.
Apply Through Our Website: Don’t forget to apply through our website! It’s the best way for us to keep track of your application and ensure it gets the attention it deserves. Plus, we love seeing candidates who follow instructions!
How to prepare for a job interview at Durlston Partners
✨Know Your Rust and C++ Inside Out
Make sure you brush up on your Rust and C++ skills, especially in the context of latency-sensitive code. Be ready to discuss specific examples where you've optimised performance, and don't shy away from diving into technical details like memory ordering and cache coherence.
✨Understand the Matching Engine
Familiarise yourself with how matching engines work, particularly in decentralised exchanges. Be prepared to talk about branch mispredicts and cache locality, and think about how you would redesign the core matching loop to improve performance.
✨Show Off Your Problem-Solving Skills
They want someone who can own the critical path from network ingress to order book update. Prepare to discuss past experiences where you identified and solved performance bottlenecks, especially related to packet drops or latency spikes.
✨Be Ready for Technical Questions
Expect to be quizzed on low-level concepts like store buffers and assembly output. Brush up on your knowledge of data structures like Vecs and fixed-size arrays, and be ready to explain their trade-offs in a high-performance context.