38530 - Software Developer

Band B

Location: Birmingham / National

Salary Range: £30,989 - £35,000

As a 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 government better through smarter use of technology.

 

We currently have over 200 experienced developers across MoJ and its agencies who make up the broader software engineering community. You will able to learn from others, share your knowledge and take part in informal support networks with your peers.

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:

 

Technologies:

We rely heavily on

  • Java and Python to write our backend services
  • Node.js and Angular to write our frontend services
  • Jenkins for deployment
  • Dynatrace for application monitoring
  • Kubernetes and Docker to run our services
  • Azure for most of our infrastructure
  • Postgres and Redis as our databases.
  • GOV.UK Design System for our web interfaces
  • Macs to do all of 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

We’re happy to help you learn our tech stack once you are part of our team.

 

What will you be doing?

  • Write, amend, refactor and document code to build moderately complex programs/scripts. Adhere to internal process and procedures and advising others which software development standards/processes/procedures apply.
  • Constantly seek to learn and further develop your skills as required for your role. Monitor changes in the technology on which we rely and alert on any issues or trends affecting our software. Adhere to industry’s best practices, produce well-engineered modern products and guide others in doing so.
  • 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 and thoroughly identify and troubleshoot faults. Package and deploy software built. Some activities may be outside the core office hours (in-line with the organisation’s policy for OOH).
  • Contribute to 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. Choose the most appropriate from a variety of methods of prototyping, actively soliciting prototypes from others.
  • Analyse, plan, forecast, measure, maintain, improve and as required define 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).
  • Translate logical designs into physical designs, produce detailed designs that include well understood technology and appropriate patterns. Develop software to meet approved architectural artefacts. Identify, record and escalate 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.

 

What are we looking for?

  • Experience in at least one programming language for development of enterprise and public facing applications, ideally in our core stack but other languages and a desire to learn is acceptable (Java, Python, C#, PHP, Ruby, Go, Rust, C++, VB.NET, JavaScript etc.)
  • Working knowledge of HTTP and at least one web development framework (for example Spring, Django, Rails, Laravel, Razor, Classic ASP). Alternatively, sounds experience in a similar client-server environment and a desire to learn is acceptable
  • Experience in working with structured data such as XML and JSON
  • Working knowledge of at least one RDBMS (for example PostgreSQL, SQL Server, MySQL, Oracle)
  • Working knowledge in a 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.
  • An understanding of common security issues and how to mitigate them
  • You champion software maintenance, clean code and practices that make change easy
  • You hold yourself and others to a high standard
  • You care about making usable experiences, with a good understanding of front-end development concerns
  • You thrive when you work as part of a team that abides by the spirit of the manifesto of agile software development
  • You solve problems in a systematic way
  • You enjoy learning and helping others