Candidate Availability
Required and preferred rules are kept separate and reflect the wording in the original posting.
About the Role
You will develop and maintain robust Java applications and high-availability distributed systems. You will handle distributed transactions, data consistency, low-latency performance, observability, telemetry, and proactive incident management. You will participate in technical ceremonies and architecture decisions, and you will build and maintain automated tests as part of every delivery.
Requirements
- Java JDK 11+
- Message-based architectures
- Distributed messaging such as Aeron, Hydra, or Apache Kafka
- Relational databases, preferably PostgreSQL
- WebSockets and custom protocol design
- Financial market protocols such as FIX
- High-performance binary codecs such as SBE, Protobuf, or FlatBuffers
- Gradle
- Automated testing with Cucumber and BDD
- Docker
- Linux
- Observability, telemetry, and monitoring
- OpenTelemetry, exporters, collectors, traces, spans, and metrics
Responsibilities
- Develop and maintain robust Java applications
- Design and operate high-availability distributed systems
- Optimize resilience, low-latency performance, and throughput
- Handle distributed transactions and ensure data consistency across microservices
- Develop observability-oriented microservices
- Monitor systems and anticipate failures and incidents
- Participate in technical refinements, planning, reviews, architecture decisions, and product strategy
- Build and maintain automated tests