About the Role
An exciting opportunity for a Senior Java Engineer to join a high-performing engineering team responsible for building Backend-for-Frontend (BFF) services within a modern digital platform.
This role focuses on developing reactive, non-blocking microservices that sit between customer-facing channels (web, mobile, third-party integrations) and downstream systems.
You will play a key role in delivering high-performance, resilient, and secure APIs that directly impact user experience at scale.
Key Responsibilities
BFF & API Layer
Design and build BFF services that aggregate and orchestrate downstream APIs
Tailor responses for different channels (web, mobile, conversational interfaces)
Define and evolve consumer-driven API contracts
Reactive Development
Build services using Spring Boot 3.x, WebFlux, and Project Reactor
Apply non-blocking, asynchronous programming models
Ensure optimal handling of backpressure and concurrency
Resilience & Performance
Implement resilience patterns using Resilience4j
Apply caching strategies (Redis, Caffeine)
Optimize for low latency and high throughput
Integration & Messaging
Integrate with distributed systems via REST and messaging platforms
Use Kafka or RabbitMQ for event-driven processing
Security
Implement OAuth2 / OpenID Connect and JWT-based security
Enforce API protection, validation, and rate limiting
Testing & Quality
Develop comprehensive test coverage:
Unit testing (JUnit, Mockito)
Integration testing (Testcontainers)
Reactive testing (StepVerifier)
Contract testing
Cloud & DevOps
Containerise applications using Docker
Deploy via Kubernetes and CI/CD pipelines
Contribute to automation and infrastructure practices
Observability
Implement logging, tracing, and monitoring
Use tools such as Micrometer, OpenTelemetry, Prometheus, Grafana
Collaboration & Leadership
Participate in architecture and design discussions
Conduct code reviews and enforce best practices
Mentor engineers and contribute to team growth
Required Skills & Experience
Strong experience in Java 17+
Deep expertise in Spring Boot and Spring WebFlux
Solid understanding of reactive programming paradigms
Experience with BFF / API composition patterns
Messaging systems (Kafka / RabbitMQ)
Containers and cloud platforms (Docker, Kubernetes)
CI/CD and modern DevOps practices
Redis, R2DBC, and/or NoSQL databases
Preferred Experience
6 - 10 years of software engineering experience
3+ years working with reactive systems
Experience in high-scale distributed environments
Exposure to regulated or security-sensitive domains
Familiarity with API gateway ecosystems
Key Traits
Strong engineering craftsmanship and attention to detail
Passion for reactive and scalable systems
Customer-focused mindset
Collaborative and team-oriented
Strong problem-solving ability in distributed systems
Ownership and accountability
Continuous learner with a growth mindset