As a Junior Software Developer at HMCTS you will work with a wide range of stakeholders such as user researchers, product managers, designers, business analysts, 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 repository:
You can find more information about our ways of working in the HMCTS Way:
Technologies
- 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.
- 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
Key Responsibilities
- Design, code, test, correct and document simple programs or scripts under the direction of others.
- Constantly seek to learn and further develop your skills as required for your role.
- Adhere to industry best practices, produce well-engineered modern products.
- Use security controls to build secure products and engineer to mitigate security threats. Handle information with confidentiality and integrity, work with others to ensure compliance and information assurance. Contribute to identifying risks and threats.
- Support and maintain software as required, including in the live environment.
- Use modern tools to effectively package and deploy software and thoroughly identify and troubleshoot faults. Some activities may be outside the core office hours (in-line with the organisations policies).
- Contributeto planning by estimating your own effort. Practice the agreed methodology and apply it to your work, identifying obvious deficiencies and supporting activities to improve the development process.
- Translate logical designs into physical designs, produce simple designs that include well understood technology and appropriate patterns. Develop software to meet approved architectural artefacts. Identify, record and elevate tech debt and low-level risks.
- Build and test simple interfaces between systems, or work on more complex integration as part of a wider team.
- Share knowledge with developers and other coders (devOps, automation testers etc).
- Translate user stories to a proposed design and develop software to meet user needs.