Save time and effort sourcing top tech talent

Domains Developer

London, UK
Python Developer
Government Digital Service
Actively hiring

Sign up for the chance to get matched to this role, and similar opportunities.

Job summary

The Central Digital and Data Office is part of the Department for Science, Innovation & Technology and leads the Government Digital and Data function for the government. We put the right conditions in place to achieve digital and data transformation at scale by working with departments, and other government functions like commercial, project delivery and security professionals.

We are responsible for:

  • Government Digital and Data Strategy and Standards, like the Technology Code of Practice, the Service Standard and Open Standards
  • Government Digital and Data performance and assurance, including Spend Controls
  • Government Digital and Data Capability Development, including the Government Digital and Data pay framework

You can read more about these missions and our vision for the transformation of government on the CDDO Blog.

The CDDO Domains Team protects public sector domain name spaces such as “.gov.uk”, and ensures that they remain stable, trusted, well managed and resistant to compromise. The team also helps protect the infrastructure tools and services associated with these domains.

Job description

As a Domains Team Developer you’ll be responsible for working alongside senior and junior developers to build and maintain services for identifying and managing vulnerabilities associated with public sector domains.

The platform has a Django application at its core, supported by AWS serverless components and automated tasks using Celery. These components feed data into a Salesforce-based frontend. We have several ancillary services supporting the team’s wider objectives and plan to stand up additional components/services over the next year.

Our services are built almost exclusively using Python, including our infrastructure (using the AWS CDK), with small amounts of HTML/CSS and Javascript used in our frontend and for automated testing.  

You will build and maintain a domain vulnerability management toolset, principally in Python, including:

  • adding new, commercially-available or open source data sources to our existing ingestion pipeline
  • designing, building and maintaining additional tools for monitoring for and detecting vulnerabilities with public sector services
  • extending our existing Django/Postgres-based API to accommodate new classes of vulnerability and enable reporting of these to operational colleagues and external partners
  • building and extending tools to export vulnerability data to public sector domain owners, as supported by their vulnerability management tooling (MS Sentinel, Splunk etc)
  • maintaining and improving web applications used by our partners for consuming services provided by the Domains Team
  • integrating newly-built and extended components with our existing, AWS-based infrastructure using the Python CDK
  • extending our existing reporting tooling (based on AWS Quicksight), and build new tools as required, to provide stakeholders with an overall picture of the range and scale of vulnerabilities discovered by our service
  • clearly communicating ideas with, and responding to feedback from,  the rest of the development team, service owners, and other colleagues
  • adhering to  development standards and good practice, including recommending improvements
  • ensuring the product is built according to the needs of users, including an operations team, a communications team, national security stakeholders and other apex domain holders

The above list of job duties is not exhaustive and a willingness to work flexibly as priorities change is an essential requirement of the role.

Person specification

This role aligns to the following in the Government Digital and Data Profession Capability Framework - Developer

  • development process optimisation
  • information security
  • programming and build (software engineering)
  • prototyping
  • service support
  • systems design
  • systems integration
  • user focus

Specialist skills required

You will also have the following skills:

  • strong working knowledge of Python
  • experience of working with Python web frameworks, ideally Django
  • strong working knowledge of modern development tools, including Docker, git and GitHub
  • experience of deploying containerised applications in the Cloud, ideally using Amazon Web Services
  • an ability to build and maintain CI/CD tooling, ideally using GitHub Actions and AWS CodeBuild/CodePipeline
  • experience of working with relational databases, ideally PostgreSQL
  • the ability to investigate problems with running applications, including interrogating AWS logs, responding to errors raised in Sentry (or similar tools) and applying fixes
  • experience of working with infrastructure as code products, ideally including the AWS Python CDK
  • a good working knowledge of Linux/UNIX, including system administration and shell scripting
  • an understanding of what DNS is and its role in enabling the operation of the Internet
  • working within an Agile environment, including mentoring junior developers

Sign up for the chance to get matched to this role, and similar opportunities.

Upskill

Level up the hackajob way. Verify your skills, learn brand new ones and test your ability with Pathways, our learning and development platform.

Ready to reach your potential?