Senior Java Developer in London

Senior Java Developer in London

London Full-Time 90000 Β£ / year On-site
I

The role We are looking for a Senior Java Developer to help design and deliver a platform built around Java microservices. You will take ownership of backend services, contribute to architecture decisions and work closely with product, QA and DevOps colleagues to turn business requirements into reliable software. This role suits an experienced engineer who enjoys hands-on development and solving the practical challenges of distributed systems. The microservices project You will join a programme modernising a digital platform covering customer onboarding, order management, billing and notifications. The work combines extracting functionality from an existing monolithic application with developing new services that can be deployed and scaled independently. The aim is to shorten release cycles, improve resilience and support growing transaction volumes without disrupting existing users. The proposed stack centres on Java 21 and Spring Boot, with REST APIs for synchronous integration and Apache Kafka for asynchronous events. Each service will own its data, using PostgreSQL where appropriate, with Redis for caching. Docker containers will run on Kubernetes in AWS, supported by automated build, test and deployment pipelines. You will help define service boundaries and API contracts, plan incremental migration and resolve issues such as duplicate events, failed downstream calls and data consistency across services. Key responsibilities * Design, build and maintain Java microservices, taking features from technical design through testing, deployment and production support. * Develop secure REST APIs with clear contracts, versioning, validation and consistent error handling. * Implement Kafka producers and consumers, including retries, idempotent processing and dead-letter handling. * Contribute to architecture discussions, documenting decisions about service boundaries, data ownership and integration patterns. * Write automated tests and review code to maintain quality, readability and long-term maintainability. * Improve application performance and reliability using profiling, metrics, logs and distributed tracing. * Work with DevOps engineers on container deployments and CI/CD pipelines; diagnose production issues and implement lasting fixes. * Collaborate with product owners and QA engineers, explain technical trade-offs and mentor less experienced developers. Essential skills and experience * Java: Extensive commercial Java experience, typically around 10 years or equivalent depth, including recent work with Java 17 or 21, concurrency, collections and JVM performance. * Spring: Strong experience with Spring Boot, dependency injection, Spring Data JPA, Hibernate and Spring Security. * Microservices: A track record of delivering and operating microservices, with an understanding of service boundaries, timeouts, retries, circuit breakers and eventual consistency. * APIs and security: Experience designing REST APIs with OpenAPI documentation, OAuth 2.0 or OpenID Connect, and token-based access control. * Messaging: Practical experience with Apache Kafka or a comparable messaging platform, including consumer groups, ordering, delivery guarantees and duplicate processing. * Databases: Strong SQL skills, relational data modelling, transaction management and query optimisation, ideally using PostgreSQL; familiarity with Redis caching. * Cloud and containers: Experience deploying applications to AWS or an equivalent cloud, using Docker and Kubernetes. * Testing: Experience with JUnit 5, Mockito and integration testing using tools such as Testcontainers or WireMock. * Delivery: Confidence with Git, Maven or Gradle, and CI/CD tools such as GitHub Actions, GitLab CI or Jenkins. * Collaboration: Ability to break down ambiguous requirements, explain design choices, review code constructively and work effectively within an Agile team. Desirable skills * Experience migrating monolithic applications using incremental approaches such as the strangler pattern. * Knowledge of domain-driven design, contract testing and distributed transaction patterns such as sagas or the transactional outbox. * Experience with Terraform, Helm and AWS services such as EKS, RDS and MSK. * Familiarity with OpenTelemetry, Prometheus, Grafana and performance or load-testing tools. The opportunity You will influence how the platform is designed and delivered, with responsibility for services used in day-to-day business operations. The project offers scope to tackle migration and scaling challenges while helping establish engineering practices that the wider team can build on

I

Contact Details:

Intelligent Steps Recruitment Team