Java Distributed Systems Engineer - NYC - Fintech
About the role
Adaptive is a product-led financial technology company with deep expertise in capital, commodity, and digital markets. We build technology for investment banks, investment managers, fintechs, and capital markets service providers. Our consulting teams work with clients to implement and extend that technology, but our starting point is product engineering: solving difficult problems and building software that creates lasting competitive advantage. We are hiring a Java Distributed Systems Engineer to help build Aeron Sequencer, our technology for applying state machine replication to capital markets. You will work on distributed systems that enable other engineering teams to build performant, reliable software. This is a hands-on role with the opportunity to influence product decisions, architecture, engineering practices, and how we communicate our work. Interesting engineering problems await, working with passionate engineers on software where correctness, performance, and ease of use matter. You will have product influence, helping shape technology used to solve complex problems in financial markets. Collaborative teams share knowledge, learn from one another, respect different perspectives, and contribute wherever help is needed. We support a sustainable pace, valuing work‑life balance with wellbeing benefits and a focus on long‑term performance. An inclusive culture aims to create a positive, collaborative environment and support our people and local communities through wellbeing, diversity, and inclusion programmes. Adaptive has offices in London, New York, Barcelona, Montreal, and Manila, bringing together a global team with a shared focus on building better financial technology.
Responsibilities
- Analyse, design, discuss, and develop distributed systems based on replicated state machines.
- Write clean, efficient, maintainable, and self-documenting Java code.
- Design and evolve messaging protocols and software libraries.
- Troubleshoot and debug Java applications and distributed systems.
- Apply testing, benchmarking, measurement, and profiling to improve correctness and performance.
- Participate in code reviews, pairing, and technical discussions to raise the quality of our work.
- Contribute to product decisions, not just task execution.
- Keep up to date with relevant software engineering technologies and practices.
- Communicate technical decisions and priorities clearly to technical and non-technical stakeholders.
Requirements
- Experience designing, building, debugging, and operating distributed systems.
- Strong experience developing server-side software in Java.
- Experience designing and evolving messaging protocols or software libraries.
- Experience using different forms of testing to support software quality, including correctness and performance.
- Experience measuring, benchmarking, and profiling components or systems.
- Strong written and