Location: London, UK
About the Role
We are seeking an experienced Java Engineer specialising in high-performance and low-latency systems to join our London-based engineering team.
You will design, develop, and optimise ultra-low-latency, high-throughput Java applications for performance-critical environments, including real-time and financial market-driven systems.
The role requires strong expertise in JVM internals, advanced concurrency, memory management, networking, and Linux, with a focus on achieving predictable and consistently low latency at both application and system levels.
You will work closely with engineering and infrastructure teams to build event-driven and reactive architectures capable of processing high volumes of real-time data with minimal latency.
Key Responsibilities
- Design and develop high-performance, low-latency Java applications with a strong focus on resource efficiency and predictable performance.
- Optimise JVM performance, including Garbage Collection (GC), JIT compilation, memory allocation, and runtime configuration.
- Design and implement concurrent, event-driven, and reactive systems for real-time processing.
- Develop efficient algorithms and data structures for high-throughput, latency-sensitive applications.
- Work with shared memory, memory-mapped files, and inter-process communication (IPC) for performance-critical workloads.
- Analyse application and system performance using profiling, benchmarking, and observability tools.
- Identify and resolve JVM-level, application-level, and system-level performance bottlenecks.
- Collaborate with infrastructure and platform teams on CPU, memory, networking, and operating-system-level optimisation.
- Design systems that meet strict latency, throughput, reliability, and resource-utilisation requirements.
- Support production systems and continuously identify opportunities to improve performance and scalability.
- Ensure solutions meet the requirements of latency-sensitive trading and market-driven environments.
- Strong hands-on expertise in Java and high-performance application development.
- Deep understanding of JVM internals, JVM tuning, memory management, and performance optimisation.
- Strong knowledge of Garbage Collection, JIT compilation, object allocation, and runtime behaviour.
- Proven experience designing concurrent, low-latency, and high-throughput systems.
- Strong understanding of event-driven and reactive architectures.
- Practical knowledge of Java concurrency, lock-free programming, synchronisation, and multithreading.
- Experience with JNI, Java Unsafe, and/or JNR-FFI.
- Solid understanding of CPU architecture, CPU caching, memory models, and shared-memory concepts.
- Strong knowledge of Linux internals and system-level performance optimisation.
- Good understanding of networking protocols, particularly TCP/UDP, and network performance considerations.
- Strong knowledge of algorithms and data structures, with the ability to optimise them for performance-critical workloads.
- Experience troubleshooting complex production performance and latency issues.
Nice to Have
- Experience with Aeron or other high-performance messaging frameworks.
- Experience working on financial markets, electronic trading, algorithmic trading, or high-frequency trading (HFT) systems.
- Experience with native code integration and system-level optimisation.
- Experience with shared-memory or memory-mapped communication.
- Familiarity with Linux performance tools, CPU profiling, and system-level benchmarking.
- Experience with tools such as Java Flight Recorder (JFR), Java Mission Control (JMC), async-profiler, perf, or similar.
- Experience working with real-time market data, pricing, order management, or execution systems.