Senior Developer in Test - HM Courts and Tribunals Service - G7
Government Digital & Data -
Location
East Midlands (England), East of England, London (region), North East England, North West England, Scotland, South East England, South West England, Wales, West Midlands (England), Yorkshire and the Humber
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
Skills and Experience:
- Sound knowledge in Java for development of enterprise and public facing applications
- Strong automation skills at both the service and UI level
- Experience in working with developers to plan and design automation test frameworks and test suites.
- Sound knowledge of HTTP, at least one web development framework (for example Spring or Jersey), Angular (React or Vue.js may be considered) and JavaScript
- Sound knowledge of at least one RDBMS (PostgreSQL or similar), XML and JSON
- 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 (docker, k8s, infrastructure as code) and techniques
- Experience of mentoring, coaching or leading other Developers in Test
- Experience of performance testing or performance monitoring tools
- Experience of designing and implementing non-functional tests that will ensure there is coverage of NFRs - specifically performance
- Strong experience of working with delivery teams using Scrum or Kanban techniques
- Experience of working closely with the Ops team to help specify test environments
- Takes an active interest in the testing community via blogs, forums, and conferences
- You will also want to make a positive impact on the communities we serve
- You are looking for new technical and leadership challenges
- You thrive when you work as part of a team
- You enjoy learning and helping others
- You hold yourself and others to a high standard
- You solve problems in a systematic way
Key responsibilities:
- Establish, monitor, and maintain automated testing. Amending, refactoring, and documenting Automation code to build and maintain automated frameworks, and as required leading on these activities. Adhere to internal process and procedures, promoting and advising others which software development testing standards/processes/procedures apply.
- Improve existing test automation or design more efficient ways of testing. You will look to improve existing test code or design tests that are faster or more comprehensive relative to existing tests.
- Monitor builds and trends across the teams (i.e., sauce lab fails, performance degradation, security issues etc.)
- 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 lead code reviews of colleagues' work.
- Support Infrastructure testing and OAT and DevOps maintenance activities
- 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.
- Plan the testing 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 testing process. Choose the most appropriate from a variety of methods of prototyping, actively solicit prototypes with others.
- Support and maintain software as required, including in the live environment. Use modern tools to identify, troubleshoot and fix faults effectively and thoroughly. Package and deploy software built. Some activities may be outside the core office hours (in-line with the organisation's policy for OOH).
- 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.
- 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.
- Guide and advise others on technical areas of testing, 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.
Application process:
Success Profile Framework will be used to assess and score your application during the sift, and interview.
- Experience – As demonstrated in your application form.
- Technical – Coding task and interview. If successful, you will move on to the interview stage, which will include an extension exercise to the coding task you submit in your Personal Statement
- Coding Task
When submitting your application please complete the following coding task and provide a link to the repository: https://github.com/hmcts/dts-test-automation-challenge
Please note the Civil Service application process is name-blind, so ensure that the repository containing your code does not include any personal information that would identify you.
- Technical – As demonstrated at interview. During the interview, you will be assessed against the Government Digital and Data (GDD) Capability Framework.
- Capability Skill 1: Development process optimisation
- Capability Skill 2: Information security
- Capability Skill 3: Modern development standards
- Capability Skill 4: Programming and build (software engineering)
- HMCTS Coding Challenge
Behaviours – You will be required to provide evidence of the following key behaviours at Level 4.
Communicating and Influencing
- Making Effective Decisions
Level of Clearance - To apply for this role, you will be required to successfully complete Security Clearance (SC) level as a condition of appointment: https://www.gov.uk/government/publications/united-kingdom-security-vetting-clearance-levels/sc-guidance-pack-for-applicants
Technical Skills
HMCTS Coding Challenge:
Please complete the coding task below. In your personal statement, describe your Software developer in Test experience, explain your approach to the task, and provide a link to your code repository
https://github.com/hmcts/dts-test-automation-challenge
Please note the Civil Service application process is name-blind, so ensure that the repository containing your code does not include any personal information that would identify you.
Person specification
Please refer to Job Description
Behaviours
We'll assess you against these behaviours during the selection process:
- Communicating and Influencing
- Making Effective Decisions
Technical skills
We'll assess you against these technical skills during the selection process:
- Capability Skill 1: Development process optimisation
- Capability Skill 2: Information security
- Capability Skill 3: Modern development standards
- Capability Skill 4: Programming and build (software engineering)
- Please refer to Technical Skills in Job Description.