Software Engineer
Role details
Job location
Tech stack
Job description
Join our Exchange team and start building the internet of money. The Exchange team is responsible for everything to do with the trading backend services such as the matching engine, market data gateways, internal and external APIs, margin systems and various other trading services. The team is located globally and responsibilities are split into sub-teams, working with various tech stacks. Our teams code in C++, Go, Rust, and Python, depending on the product they are contributing to within Kraken.
This role sits within the Trading Technologies sub-team, which owns the messaging and transport layer at the core of our trading infrastructure - built on Aeron for ultra-low-latency, reliable UDP messaging. You'll work directly on the systems that move market data, orders, and trade events across our exchange at microsecond scale., * Develop and maintain core framework and key software components for the Kraken trading engine, with a fous on the Aeron-based messaging transport layer
- Design and implement low-latency, high-availability messaging solutions across unicast, multicast, and IPC transport paths
- Tune and profile the full system stack - CPU pinning, NUMA topology, kernel bypass, receive buffer sizing - to squeeze latency out of production infrastructure
- Build and extend Aeron Archive integrations for durable message replay and stream persistence
- Build and design solutions that mitigate risk, implement security, and protect both systems and data
- Write reusable, testable, and efficient code
- Collaborate with cross-functional teams and contribute to product roadmap accomplishment
- Work collaboratively on a distributed team, leveraging soft skills to effectively communicate and engage with stakeholders
Requirements
- 5+ years experience working with modern C++
- Prior experience in at least one of the following using Linux - distributed and/or highly-concurrent systems; low-latency and/or high-volume transaction environments
- Deep understanding of low-latency systems fundamentals: lock-free data structures, mechanical sympathy, cache-line discipline, busy-spin vs. park/wake tradeoffs
- Experience with Aeron or comparable messaging transports (e.g. Chronicle Queue, ZeroMQ, LMAX Disruptor) highly desirable
- Experience with UDP networking, multicast, and kernel-bypass techniques (e.g. DPDK, RDMA) a strong plus
- Familiarity with SBE (Simple Binary Encoding) or similar zero-copy serialisation formats a plus
- Experience profiling and optimising code (CPU, memory, network) - perf, flamegraphs, VTune, or equivalent
- High level of proficiency in Python, Rust, and SQL strongly preferred
- Demonstrated knowledge of order types, trading systems, and financial products is highly desirable
- Cryptocurrency/Blockchain familiarity highly preferable
- Proactive mindset with the ability to both prioritize tasks and adhere to aggressive deadlines
- BS in a technical or quantitative field