As a Senior Java Developer within the Java Development Guild in CDIO Borders & Trade, you will be responsible for leading the design and development of clean, secure code following a test-driven approach, as well as maintenance and continuous improvement of Java-based services and applications across both legacy and modern platforms.
This role spans the full service lifecycle, from greenfield development and service transition to support and enhancement of live services, security updates and defect resolution. It also provides senior-level technical leadership across projects and live support work, acting as a system subject matter expert and as an Intelligent Client on internal and supplier-led deliveries.
In addition to hands-on development responsibilities, the Senior Java Developer plays a key role in setting technical direction, upholding engineering standards, mentoring and line managing junior developers, and ensuring services are secure, robust, supportable and aligned to business needs.
Person specification
The Senior Java Developer role requires a strong combination of advanced technical expertise, leadership capability, service support knowledge and stakeholder management skills.
This role will suit an experienced Java Developer who is proactive and self-driven, able to anticipate risks and opportunities, take ownership of outcomes, and drive progress while maintaining high standards for quality, security and operational performance.
- Proactive and self-driven: spots issues early, initiates improvements, and follows through without needing close supervision.
- Strategic thinker with strong technical judgement: able to balance delivery speed, risk, cost and long-term maintainability.
- Coaching mindset: mentors more junior engineers and promotes knowledge sharing.
- Quality and security focused: advocates for clean code, test-driven development, secure-by-design principles and strong assurance practices.
- Collaborative communicator: works effectively with product, architecture, operations and delivery partners, translating between technical and non-technical audiences.
- Resilient under pressure: acts as a calm escalation point during incidents and high-risk decisions, staying focused on outcomes and learning.
Key responsibilities
The key responsibilities of the Senior Java Developer role across design, development, maintenance and support of complex full stack Java applications and services include:
- Designing secure, scalable, resilient and supportable solutions with strong engineering controls and practices.
- Writing, reviewing, and assuring clean, reusable, testable and secure code, using TDD and quality-focused development practices.
- Supporting systems integration, interface design and testing across multiple systems and environments.
- Supporting live services through a combination of normal, and out of hours support. Working on incident resolution, bug fixing, security updates, service improvements, diagnosing integration issues across a complex landscape.
- Leading or contributing to code reviews, design reviews, technical assurance and development governance and ensuring development and support activity is documented and delivered in line with agreed governance, standards, controls and policies.
- Acting as a technical Subject Matter Expert and collaborating with architects, business analysts, testers, delivery managers, product owners and other disciplines throughout the delivery lifecycle.
- Providing Intelligent Client capability on supplier-led and mixed-delivery projects, ensuring alignment with HMRC standards, quality and security requirements. This includes managing knowledge transfer from suppliers and contractors into internal teams.
- Continuous improvement of engineering practices, tools, processes, standards and service robustness.
- Guild Leadership including Recruitment (workforce planning and training needs) and Staff development (Mentoring, coaching and line managing junior developers, supporting wider capability growth.)
Additionally, the post holder will work normal office hours though may be required to occasionally work outside of normal working hours (for example to support software releases). The post holder will be required to form part of a 24/7 on-call Rota involving out of hours remote support.
- Significant experience designing, developing, supporting and maintaining complex Java-based services and applications across both legacy and modern technology stacks in complex environments.
- Strong experience building APIs, microservices and integrated services using Java, REST, Spring Boot/Cloud, Redis, Hibernate, with experience of Kubernetes and Docker, messaging technologies such as JMS, Kafka or RabbitMQ, and cloud-native platforms including AWS, S3, EKS.
- Experience using modern CI/CD tooling (e.g. Java IDEs, Maven, Git, GitLab CI, Artifactory, Jenkins) and databases (incl. MySQL and Oracle,) with the ability to write and support SQL, PL/SQL, triggers and stored procedures.
- Strong experience leading full stack development in a team environment including; technical leadership through software engineering best practices (e.g. containerisation, microservice design patterns, Agile, TDD, CI/CD, code quality, maintainability and secure development), setting direction, conducting reviews and assuring quality.
- Experience supporting and improving live services, including fault diagnosis, bug fixing, operational support.
- Strong understanding of system integration, interface design, and integration testing.
- Strong analytical and problem-solving skills, with a logical and organised approach to delivery, and the ability to communicate complex technical concepts clearly to technical and non-technical audiences.
- Experience mentoring, coaching or line managing others, including supporting the development of junior staff.
- Ability to work effectively across multidisciplinary teams and supplier environments while maintaining internal standards and controls.
- Awareness of cloud service models, cloud-native architecture and infrastructure-as-code practices.
- Working knowledge of Linux or other Unix-like operating systems.
- Understanding of Behaviour Driven Development, user-centred design and service delivery principles.
- Experience working on large-scale government, public sector or regulated services where security, resilience and auditability are important.
- Awareness of how generative AI tools can support software engineering practices, including development, testing, documentation or code quality activities.