Software Developer - HM Courts and Tribunals Service - SEO
Government Digital & Data -
Introduction
These are exciting times at HM Court and Tribunals Service (HMCTS). As an agency of the MoJ, we support the judiciary across England and Wales to deliver justice by running courts and tribunals and processing outcomes, and we are looking for talented people to help us achieve our ambitions. It will be challenging, important and rewarding.
HMCTS Digital and Technology Services (DTS) is a specialist technology directorate which provides support to HMCTS in the use of IT and Digital.
DTS is creating a place in which it is great to do work and part of our offer is brilliant training opportunities and support from expert colleagues. As well as that you’ll find flexible working, an inclusive culture and a place where your opinion is valued.
Please follow the link below for further information about HMCTS. www.gov.uk/government/organisations/hm-courts-and-tribunals-service
Job Description
As a Software Developer you will work with a wide range of stakeholders such as user researchers, product managers, designers, business analysts, content specialists, delivery managers and digital architects, all of whom share a vision for making better government through smarter use of technology. You will innovate to radically transform public services for the better.
The development squad you are placed on will be agreed closer to your start date, but examples of products can be found in our GitHub repositories:
https://github.com/ministryofjustice
https://github.com/CJSCommonPlatform
You can find more information about our ways of working in the HMCTS Way: https://hmcts.github.io
Technologies we rely heavily on (Core Tech Stack):
- Java to write our backend services
- Node.js to write our frontend services
- Power Platform for low-code development
- Jenkins for CI/CD
- Dynatrace for application monitoring
- Kubernetes and Docker to run our services
- Azure for most of our infrastructure
- Terraform for infrastructure as code
- Postgres and Redis as our databases.
- GOV.UK Design System for our web interfaces
- Macs to do all the above
In addition, we use a range of other technologies and continue to evolve by employing new technologies that help us deliver better services to our users
As a Software Developer in HMCTS you will:
- Write, amend, refactor and document code to build complex programs/scripts, and as required leading on these activities. Adhere to internal process and procedures, promoting and advising others which software development standards, processes and procedures to apply.
- Constantly seek to learn and further develop your skills as required for your role. Monitor changes in the tech stack you use and alert on any major changes affecting our software. Adhere to industry's best practices, produce well-engineered modern products and guide others to do so in a highly competently manner.
- Ensure that products are secure, engineered to mitigate security threats and have the necessary security controls in place. Ensure that information is handled with confidentiality and integrity, and that products are compliant. Identify and raise risks and support Information Assurance activities.
- Support and maintain software as required, including in the live environment. Use modern tools to effectively and thoroughly identify, troubleshoot and fix faults. Package and deploy software built. Some activities may be outside the core office hours (in-line with the organisation's policy for OOH).
- Plan the development on sets of related stories and coordinate integration tasks across systems. Contribute to selection of the software development approach (plan-driven, iterative/agile etc.) for projects. Identify process optimisation opportunities with guidance and support activities to improve the development process. Choose the most appropriate from a variety of methods of prototyping, actively solicit prototypes with others.
- Define, analyse, plan, forecast, measure, maintain and improve all aspects of the availability of services. Control and manage service availability to meet the needs of the business in a cost-effective manner. This includes managing the capability, functionality and sustainability of service components (for example, hardware, software, network resources and software/infrastructure as a service).
- Design systems characterised by medium levels of risk, impact, and business or technical complexity. Take designs through the required governance. Review designs of others to ensure the selection of appropriate technology, efficient use of resources and integration of multiple systems and technology. Identify, record and escalate tech debt and medium-level risks.
- Define the integration build. Coordinate build activities across systems and undertake and support integration testing activities.
- Take a test-driven approach to software development, write complex automation test scripts and participate in testing. Participate in code reviews of own work and leads code reviews of colleagues' work.
- Guide and advise others on technical areas you have expertise in, modern development standards and approaches to understand user stories. Coach and mentor more junior colleagues. Lead on, and participate in recruitment as required.
- Participate in and lead on procurement activities as required.
- Translate user stories to a proposed design and develop software to meet user needs. Collaborate with user researchers, represent users internally and champion user research to focus on all users.
Essential skills
We’re seeking a full stack software developer with the ability to develop and deploy high-quality code. The ideal candidate will have:
- Experience in a modern object-oriented programming language and knowledge of our tech stack (as detailed above).
- Experience in the development of enterprise and public facing applications.
- Sound knowledge of HTTP, at least one web development framework (for example Spring Boot or Angular) and at least one relational database system (e.g. PostgreSQL).
- Sound knowledge in a wide range of technologies and libraries used in an enterprise, such as logging and monitoring, ORM, authentication/authorisation, cloud hosting environments, systems integration, source control, package management etc.
- Experience of working with modern tools and techniques.
- An understanding of common security issues and how to mitigate them.
- Ability to solve problems in a systematic and analytical way.
- Ability to work effectively as part of a collaborative team.
The below criteria are desirable only. These will not be assessed throughout the recruitment process, but will be used in the event of tied scores between candidates
Desirable skills
- Experience of mentoring, coaching or leading other developers, either in the workplace or through technical communities and meetups.
- An interest in taking on new technical and leadership challenges.
- A passion for continuous learning and supporting the development of others.
- A commitment to maintaining high standards of quality and professionalism.
- A desire to make a positive impact on the communities we serve.