Staff Engineer - Permanent role (Java 17)
Staff Engineer - Java 17
London, UK (Hybrid)
Permanent
Up to £85,000 + benefits
About the Role
This is a chance to join a global technology leader, working alongside one of the UK's most recognisable retail brand, on a large-scale transformation of its digital and engineering ecosystem.
You'll be part of a modern, product-led engineering environment, helping shape systems that operate at enterprise scale, with a real focus on innovation, resilience, and customer impact.
What you'll be doing
- As a Staff Engineer, this is more than a senior coding role, you'll act as a technical authority, combining deep hands-on delivery with architecture ownership and engineering leadership.
- Build and evolve Back End services using Java 17 and Spring Boot
- Design and implement event-driven architectures using Kafka, including schema evolution, idempotent consumers, and resilient messaging patterns
- Contribute to system design and architectural decisions across complex, distributed platforms
- Drive cloud-native engineering practices, working across modern cloud stacks (AWS/Azure)
- Champion CI/CD and DevOps excellence, with strong exposure to Jenkins and pipeline automation
- Promote engineering best practices across testing, observability, and secure development
- Work closely with product and delivery teams in a cross-functional, agile environment
- Mentor engineers and help raise the technical bar across the team
What we're really looking for (Staff-level mindset)
This role is for engineers who think in systems, not just services.
You'll need:
- Strong hands-on experience with Java 17+, Spring Boot, and modern Back End engineering
- Proven delivery of event-driven systems (Kafka) in production environments
- Deep understanding of CI/CD pipelines (Jenkins) and DevOps principles
- Experience building cloud-native systems (AWS) with scalability and reliability in mind
- Strong grounding in automated testing (unit, integration, contract, performance)
What sets you apart at Staff level
This is where the role really differentiates beyond coding:
Architecture-first thinking
- Strong experience with distributed systems design, trade-offs, and scalability
- Deep understanding of Clean/Hexagonal Architecture, SOLID, CQRS, resilience patterns
Event-driven & Domain-driven design
- Experience modelling systems using DDD (bounded contexts, domain events, aggregates)
- Strong grasp of asynchronous communication and system boundaries
Engineering leadership
- Ability to influence technical direction and standards
- Comfortable mentoring and elevating other engineers
- Pragmatic decision-making balancing delivery vs engineering quality
Operational excellence mindset
- Experience with observability (logs, metrics, tracing) and production systems
- Exposure to secure coding, reliability engineering, and performance tuning
Nice to have
- Experience with Kubernetes, containers, or infrastructure as code (Terraform)
- Familiarity with NoSQL (MongoDB), caching (Redis), and data optimisation
- Exposure to test frameworks (Playwright, Selenium)
- Some Front End awareness (React/TypeScript)
- Experience integrating with enterprise systems or complex data flows