Skip to main content

This is a redesigned guidance page - your feedback will help us to improve it.

Software developer

Find out what a software developer in government does and the skills you need to do the job at each level.

Last updated 31 July 2023 — See all updates

What a software developer does

A software developer designs, runs and improves software that meets user needs.

In this role, you will:

  • be responsible for writing clean, secure code following a test-driven approach
  • create code that is open by default and easy for others to reuse

Software developer role levels

There are 9 software developer role levels, from apprentice developer to principal developer - management.

The typical responsibilities and skills for each role level are described in the sections below. You can use this to identify the skills you need to progress in your career, or simply to learn more about each role in the Government Digital and Data profession.

1. Apprentice developer

An apprentice developer attends certified training and develops skills on the job.

At this role level, you will:

  • spend a substantial portion of time shadowing others
  • work with other developers to write code and tests
  • build your knowledge
  • follow a test-driven approach
  • write code that is automatically tested

This role level is often performed at the Civil Service job grade of:

  • AO (Administrative Officer)
  • EO (Executive Officer)
Skill Description

Availability and capacity management

Level: awareness

Awareness is the first of 4 ascending skill levels

You can:

  • show an awareness of availability and capacity management processes

Information security

Level: awareness

Awareness is the first of 4 ascending skill levels

You can:

  • discuss information security and the security controls that can be used to mitigate security threats within solutions and services

Modern standards approach

Level: awareness

Awareness is the first of 4 ascending skill levels

You can:

  • understand the importance of adopting a modern standards approach

Programming and build (software engineering)

Level: working

Working is the second of 4 ascending skill levels

You can:

  • design, code, test, correct and document simple programs or scripts under the direction of others

Prototyping

Level: awareness

Awareness is the first of 4 ascending skill levels

You can:

  • explain what prototyping is, and why and when to use it
  • understand how to work in an open and collaborative environment (by pair working, for example)

Service support

Level: awareness

Awareness is the first of 4 ascending skill levels

You can:

  • help with the investigation and resolution of infrastructure problems, undertaking specific activities under direction

User focus

Level: awareness

Awareness is the first of 4 ascending skill levels

You can:

  • show an awareness or understanding of user experience analysis and its principles
  • explain the purpose of user stories and the focus on user needs

2. Junior developer

A junior developer learns on the job by delivering software components.

At this role level, you will:

  • develop skills while working under supervision to deliver stories in a multidisciplinary team
  • understand and be proficient in different types of testing
  • be aware of but not responsible for security
  • coach and mentor more junior colleagues

This role level is often performed at the Civil Service job grade of:

  • EO (Executive Officer)
  • HEO (Higher Executive Officer)
Skill Description

Availability and capacity management

Level: awareness

Awareness is the first of 4 ascending skill levels

You can:

  • show an awareness of availability and capacity management processes

Information security

Level: working

Working is the second of 4 ascending skill levels

You can:

  • demonstrate an understanding of information security and the types of security controls that can be used to mitigate security threats within solutions and services

Modern standards approach

Level: working

Working is the second of 4 ascending skill levels

You can:

  • explain the most important principles of a modern standards approach and how they apply to the work you are undertaking
  • apply these principles under guidance

Programming and build (software engineering)

Level: working

Working is the second of 4 ascending skill levels

You can:

  • design, code, test, correct and document simple programs or scripts under the direction of others

Prototyping

Level: working

Working is the second of 4 ascending skill levels

You can:

  • understand when to use a specific prototyping technique or method
  • show the value of prototyping to your team

Service support

Level: working

Working is the second of 4 ascending skill levels

You can:

  • help fix faults following agreed procedures
  • carry out agreed maintenance tasks on infrastructure

Systems design

Level: awareness

Awareness is the first of 4 ascending skill levels

You can:

  • assist as part of a team in the design of components of larger systems

Systems integration

Level: awareness

Awareness is the first of 4 ascending skill levels

You can:

  • talk about the process of integrating systems and the challenges of designing, building and testing interfaces between systems

User focus

Level: awareness

Awareness is the first of 4 ascending skill levels

You can:

  • show an awareness or understanding of user experience analysis and its principles
  • explain the purpose of user stories and the focus on user needs

3. Developer

A developer delivers software components that form part of a product.

At this role level, you will:

  • develop software to meet user needs
  • follow best practice guidelines and help to improve those guidelines
  • write clean, secure and well-tested code
  • coach and mentor more junior colleagues
  • operate the services you build and identify issues in production

This role level is often performed at the Civil Service job grade of:

  • HEO (Higher Executive Officer)
  • SEO (Senior Executive Officer)
Skill Description

Availability and capacity management

Level: working

Working is the second of 4 ascending skill levels

You can:

  • manage service components to ensure they meet business needs and performance targets

Development process optimisation

Level: awareness

Awareness is the first of 4 ascending skill levels

You can:

  • explain the importance of developing process efficiency and the common ways in which processes are optimised
  • support specific activities to improve development processes
  • spot or identify obvious deficiencies

Information security

Level: practitioner

Practitioner is the third of 4 ascending skill levels

You can:

  • understand information security
  • design solutions and services with security controls embedded, specifically engineered with mitigation of security threats as a core feature

Modern standards approach

Level: practitioner

Practitioner is the third of 4 ascending skill levels

You can:

  • competently apply a modern standards approach and guide others to do so

Programming and build (software engineering)

Level: practitioner

Practitioner is the third of 4 ascending skill levels

You can:

  • collaborate with others when necessary to review specifications
  • use the agreed specifications to design, code, test and document programs or scripts of medium-to-high complexity, using the right standards and tools

Prototyping

Level: practitioner

Practitioner is the third of 4 ascending skill levels

You can:

  • approach prototyping as a team activity, actively soliciting prototypes and testing with others
  • establish design patterns and iterate them
  • use a variety of prototyping methods and choose the most appropriate

Service support

Level: working

Working is the second of 4 ascending skill levels

You can:

  • help fix faults following agreed procedures
  • carry out agreed maintenance tasks on infrastructure

Systems design

Level: working

Working is the second of 4 ascending skill levels

You can:

  • translate logical designs into physical designs
  • produce detailed designs
  • effectively document all work using required standards, methods and tools, including prototyping tools where appropriate
  • design systems characterised by managed levels of risk, manageable business and technical complexity, and meaningful impact
  • work with well understood technology and identify appropriate patterns

Systems integration

Level: working

Working is the second of 4 ascending skill levels

You can:

  • build and test simple interfaces between systems
  • work on more complex integration as part of a wider team

User focus

Level: practitioner

Practitioner is the third of 4 ascending skill levels

You can:

  • collaborate with user researchers and can represent users internally
  • explain the difference between user needs and the desires of the user
  • champion user research to focus on all users
  • prioritise and define approaches to understand the user story, guiding others in doing so
  • offer recommendations on the best tools and methods to use

4. Senior developer

A senior developer delivers and integrates software to form a complete service.

At this role level, you will:

  • plan and lead development on sets of related stories
  • have an understanding of the whole system and take responsibility for teaching this to others
  • work with other disciplines to understand what needs to be built
  • coach and mentor more junior colleagues
  • operate the production services you build
  • find ways to improve system robustness, resilience and stability

There are 2 different roles at this level - a technical role and a management role.

This role level is often performed at the Civil Service job grade of:

  • SEO (Senior Executive Officer)
  • G7 (Grade 7)
Skill Description

Availability and capacity management

Level: working

Working is the second of 4 ascending skill levels

You can:

  • manage service components to ensure they meet business needs and performance targets

Development process optimisation

Level: working

Working is the second of 4 ascending skill levels

You can:

  • identify process optimisation opportunities with guidance and contribute to the implementation of proposed solutions

Information security

Level: practitioner

Practitioner is the third of 4 ascending skill levels

You can:

  • understand information security
  • design solutions and services with security controls embedded, specifically engineered with mitigation of security threats as a core feature

Modern standards approach

Level: practitioner

Practitioner is the third of 4 ascending skill levels

You can:

  • competently apply a modern standards approach and guide others to do so

Programming and build (software engineering)

Level: practitioner

Practitioner is the third of 4 ascending skill levels

You can:

  • collaborate with others when necessary to review specifications
  • use the agreed specifications to design, code, test and document programs or scripts of medium-to-high complexity, using the right standards and tools

Prototyping

Level: practitioner

Practitioner is the third of 4 ascending skill levels

You can:

  • approach prototyping as a team activity, actively soliciting prototypes and testing with others
  • establish design patterns and iterate them
  • use a variety of prototyping methods and choose the most appropriate

Service support

Level: practitioner

Practitioner is the third of 4 ascending skill levels

You can:

  • identify, locate and fix faults

Systems design

Level: practitioner

Practitioner is the third of 4 ascending skill levels

You can:

  • design systems characterised by medium levels of risk, impact, and business or technical complexity
  • select appropriate design standards, methods and tools, and ensure they are applied effectively
  • review the systems designs of others to ensure the selection of appropriate technology, efficient use of resources and integration of multiple systems and technology

Systems integration

Level: practitioner

Practitioner is the third of 4 ascending skill levels

You can:

  • define the integration build
  • co-ordinate build activities across systems
  • understand how to undertake and support integration testing activities

User focus

Level: practitioner

Practitioner is the third of 4 ascending skill levels

You can:

  • collaborate with user researchers and can represent users internally
  • explain the difference between user needs and the desires of the user
  • champion user research to focus on all users
  • prioritise and define approaches to understand the user story, guiding others in doing so
  • offer recommendations on the best tools and methods to use

5. Senior developer - management

A senior developer delivers and integrates software to form a complete service.

At this role level, you will:

  • plan and lead development on sets of related stories
  • have an understanding of the whole system and take responsibility for teaching this to others
  • work with other disciplines to understand what needs to be built
  • coach and mentor more junior colleagues
  • operate the production services you build
  • find ways to improve system robustness, resilience and stability

There are 2 different roles at this level - a technical role and a management role.

Skill Description

Availability and capacity management

Level: practitioner

Practitioner is the third of 4 ascending skill levels

You can:

  • ensure the correct implementation of standards and procedures
  • identify capacity issues, and stipulate and instigate the required changes
  • initiate remedial action

Development process optimisation (management)

Level: working

Working is the second of 4 ascending skill levels

You can:

  • work under guidance to identify process optimisation opportunities
  • contribute to the implementation of proposed solutions

Information security

Level: practitioner

Practitioner is the third of 4 ascending skill levels

You can:

  • understand information security
  • design solutions and services with security controls embedded, specifically engineered with mitigation of security threats as a core feature

Modern standards approach

Level: practitioner

Practitioner is the third of 4 ascending skill levels

You can:

  • competently apply a modern standards approach and guide others to do so

Programming and build (software engineering)

Level: practitioner

Practitioner is the third of 4 ascending skill levels

You can:

  • collaborate with others when necessary to review specifications
  • use the agreed specifications to design, code, test and document programs or scripts of medium-to-high complexity, using the right standards and tools

Prototyping

Level: practitioner

Practitioner is the third of 4 ascending skill levels

You can:

  • approach prototyping as a team activity, actively soliciting prototypes and testing with others
  • establish design patterns and iterate them
  • use a variety of prototyping methods and choose the most appropriate

Service support

Level: practitioner

Practitioner is the third of 4 ascending skill levels

You can:

  • identify, locate and fix faults

Systems design

Level: practitioner

Practitioner is the third of 4 ascending skill levels

You can:

  • design systems characterised by medium levels of risk, impact, and business or technical complexity
  • select appropriate design standards, methods and tools, and ensure they are applied effectively
  • review the systems designs of others to ensure the selection of appropriate technology, efficient use of resources and integration of multiple systems and technology

Systems integration

Level: practitioner

Practitioner is the third of 4 ascending skill levels

You can:

  • define the integration build
  • co-ordinate build activities across systems
  • understand how to undertake and support integration testing activities

User focus

Level: practitioner

Practitioner is the third of 4 ascending skill levels

You can:

  • collaborate with user researchers and can represent users internally
  • explain the difference between user needs and the desires of the user
  • champion user research to focus on all users
  • prioritise and define approaches to understand the user story, guiding others in doing so
  • offer recommendations on the best tools and methods to use

6. Lead developer

A lead developer leads development on one or a small number of related project teams.

At this role level, you will:

  • guide the ways in which the team works
  • be proficient in a wide range of technical systems
  • be involved in identifying appropriate technology and approaches, deciding when software should be written
  • contribute to the developer community
  • provide technical leadership, coaching and mentoring your team
  • promote knowledge sharing and adoption of good practice

There are 2 different roles at this level - a technical role and a management role.

This role level is often performed at the Civil Service job grade of:

  • G7 (Grade 7)
  • G6 (Grade 6)
Skill Description

Availability and capacity management

Level: working

Working is the second of 4 ascending skill levels

You can:

  • manage service components to ensure they meet business needs and performance targets

Development process optimisation

Level: working

Working is the second of 4 ascending skill levels

You can:

  • identify process optimisation opportunities with guidance and contribute to the implementation of proposed solutions

Information security

Level: practitioner

Practitioner is the third of 4 ascending skill levels

You can:

  • understand information security
  • design solutions and services with security controls embedded, specifically engineered with mitigation of security threats as a core feature

Modern standards approach

Level: expert

Expert is the fourth of 4 ascending skill levels

You can:

  • demonstrate a strong understanding of the most appropriate modern standards and practices, and how they are applied
  • coach and guide others in these standards

Programming and build (software engineering)

Level: expert

Expert is the fourth of 4 ascending skill levels

You can:

  • advise on the right way to apply standards and methods to ensure compliance
  • maintain technical responsibility for all the stages and iterations of a software development project
  • provide technical advice to stakeholders and set the team-based standards for programming tools and techniques

Prototyping

Level: practitioner

Practitioner is the third of 4 ascending skill levels

You can:

  • approach prototyping as a team activity, actively soliciting prototypes and testing with others
  • establish design patterns and iterate them
  • use a variety of prototyping methods and choose the most appropriate

Service support

Level: practitioner

Practitioner is the third of 4 ascending skill levels

You can:

  • identify, locate and fix faults

Systems design

Level: practitioner

Practitioner is the third of 4 ascending skill levels

You can:

  • design systems characterised by medium levels of risk, impact, and business or technical complexity
  • select appropriate design standards, methods and tools, and ensure they are applied effectively
  • review the systems designs of others to ensure the selection of appropriate technology, efficient use of resources and integration of multiple systems and technology

Systems integration

Level: practitioner

Practitioner is the third of 4 ascending skill levels

You can:

  • define the integration build
  • co-ordinate build activities across systems
  • understand how to undertake and support integration testing activities

User focus

Level: practitioner

Practitioner is the third of 4 ascending skill levels

You can:

  • collaborate with user researchers and can represent users internally
  • explain the difference between user needs and the desires of the user
  • champion user research to focus on all users
  • prioritise and define approaches to understand the user story, guiding others in doing so
  • offer recommendations on the best tools and methods to use

7. Lead developer - management

A lead developer leads development on one or a small number of related project teams.

At this role level, you will:

  • guide the ways in which the team works
  • be proficient in a wide range of technical systems
  • be involved in identifying appropriate technology and approaches, deciding when software should be written
  • contribute to the developer community
  • provide technical leadership, coaching and mentoring your team
  • promote knowledge sharing and adoption of good practice

There are 2 different roles at this level - a technical role and a management role.

Skill Description

Availability and capacity management

Level: practitioner

Practitioner is the third of 4 ascending skill levels

You can:

  • ensure the correct implementation of standards and procedures
  • identify capacity issues, and stipulate and instigate the required changes
  • initiate remedial action

Development process optimisation (management)

Level: practitioner

Practitioner is the third of 4 ascending skill levels

You can:

  • analyse current processes
  • identify and implement opportunities to optimise processes
  • lead and develop a team of experts to deliver service improvements
  • help to evaluate and establish requirements for the implementation of changes by setting policy and standards

Information security

Level: practitioner

Practitioner is the third of 4 ascending skill levels

You can:

  • understand information security
  • design solutions and services with security controls embedded, specifically engineered with mitigation of security threats as a core feature

Modern standards approach

Level: expert

Expert is the fourth of 4 ascending skill levels

You can:

  • demonstrate a strong understanding of the most appropriate modern standards and practices, and how they are applied
  • coach and guide others in these standards

Programming and build (software engineering)

Level: practitioner

Practitioner is the third of 4 ascending skill levels

You can:

  • collaborate with others when necessary to review specifications
  • use the agreed specifications to design, code, test and document programs or scripts of medium-to-high complexity, using the right standards and tools

Prototyping

Level: practitioner

Practitioner is the third of 4 ascending skill levels

You can:

  • approach prototyping as a team activity, actively soliciting prototypes and testing with others
  • establish design patterns and iterate them
  • use a variety of prototyping methods and choose the most appropriate

Service support

Level: practitioner

Practitioner is the third of 4 ascending skill levels

You can:

  • identify, locate and fix faults

Systems design

Level: practitioner

Practitioner is the third of 4 ascending skill levels

You can:

  • design systems characterised by medium levels of risk, impact, and business or technical complexity
  • select appropriate design standards, methods and tools, and ensure they are applied effectively
  • review the systems designs of others to ensure the selection of appropriate technology, efficient use of resources and integration of multiple systems and technology

Systems integration

Level: practitioner

Practitioner is the third of 4 ascending skill levels

You can:

  • define the integration build
  • co-ordinate build activities across systems
  • understand how to undertake and support integration testing activities

User focus

Level: practitioner

Practitioner is the third of 4 ascending skill levels

You can:

  • collaborate with user researchers and can represent users internally
  • explain the difference between user needs and the desires of the user
  • champion user research to focus on all users
  • prioritise and define approaches to understand the user story, guiding others in doing so
  • offer recommendations on the best tools and methods to use

8. Principal developer

A principal developer leads and plans development across large or multiple teams.

At this role level, you will:

  • be an expert in many technical areas or a specialist with very deep knowledge in a particular technical area
  • use this knowledge, and work with related disciplines, to keep multiple teams working effectively
  • develop capability by facilitating internal mobility, shaping career paths and recruiting talent, ensuring they collaborate
  • identify, test and champion the adoption of emerging technologies

There are 2 different roles at this level - a technical role and a management role.

This role level is often performed at the Civil Service job grade of:

  • G6 (Grade 6)
Skill Description

Availability and capacity management

Level: working

Working is the second of 4 ascending skill levels

You can:

  • manage service components to ensure they meet business needs and performance targets

Development process optimisation

Level: practitioner

Practitioner is the third of 4 ascending skill levels

You can:

  • analyse current processes
  • identify and implement opportunities to optimise processes
  • lead and develop a team of experts to deliver service improvements
  • help to evaluate and establish requirements for the implementation of changes by setting policy and standards

Information security

Level: expert

Expert is the fourth of 4 ascending skill levels

You can:

  • demonstrate in-depth knowledge of information security
  • design, quality review and quality assure solutions and services with security controls embedded, specifically engineered with mitigation of security threats as a core feature

Modern standards approach

Level: expert

Expert is the fourth of 4 ascending skill levels

You can:

  • demonstrate a strong understanding of the most appropriate modern standards and practices, and how they are applied
  • coach and guide others in these standards

Programming and build (software engineering)

Level: expert

Expert is the fourth of 4 ascending skill levels

You can:

  • advise on the right way to apply standards and methods to ensure compliance
  • maintain technical responsibility for all the stages and iterations of a software development project
  • provide technical advice to stakeholders and set the team-based standards for programming tools and techniques

Prototyping

Level: expert

Expert is the fourth of 4 ascending skill levels

You can:

  • use a variety of prototyping methods
  • share best practice and coach others
  • look at strategic service design end to end

Service support

Level: practitioner

Practitioner is the third of 4 ascending skill levels

You can:

  • identify, locate and fix faults

Systems design

Level: expert

Expert is the fourth of 4 ascending skill levels

You can:

  • design systems characterised by high levels of risk, impact, and business or technical complexity
  • control system design practice within an enterprise or industry architecture
  • influence industry-based models for the development of new technology applications
  • develop effective implementation and procurement strategies, consistent with business needs
  • ensure adherence to relevant technical strategies, policies, standards and practices

Systems integration

Level: practitioner

Practitioner is the third of 4 ascending skill levels

You can:

  • define the integration build
  • co-ordinate build activities across systems
  • understand how to undertake and support integration testing activities

User focus

Level: practitioner

Practitioner is the third of 4 ascending skill levels

You can:

  • collaborate with user researchers and can represent users internally
  • explain the difference between user needs and the desires of the user
  • champion user research to focus on all users
  • prioritise and define approaches to understand the user story, guiding others in doing so
  • offer recommendations on the best tools and methods to use

9. Principal developer - management

A principal developer leads and plans development across large or multiple teams.

At this role level, you will:

  • be an expert in many technical areas or a specialist with very deep knowledge in a particular technical area
  • use this knowledge, and work with related disciplines, to keep multiple teams working effectively
  • develop capability by facilitating internal mobility, shaping career paths and recruiting talent, ensuring they collaborate
  • identify, test and champion the adoption of emerging technologies

There are 2 different roles at this level - a technical role and a management role.

Skill Description

Availability and capacity management

Level: practitioner

Practitioner is the third of 4 ascending skill levels

You can:

  • ensure the correct implementation of standards and procedures
  • identify capacity issues, and stipulate and instigate the required changes
  • initiate remedial action

Development process optimisation (management)

Level: expert

Expert is the fourth of 4 ascending skill levels

You can:

  • set the strategy and manage resource allocation for solution development programmes
  • work with client functions to establish business requirements and identify, propose, initiate and lead these programmes

Information security

Level: expert

Expert is the fourth of 4 ascending skill levels

You can:

  • demonstrate in-depth knowledge of information security
  • design, quality review and quality assure solutions and services with security controls embedded, specifically engineered with mitigation of security threats as a core feature

Modern standards approach

Level: expert

Expert is the fourth of 4 ascending skill levels

You can:

  • demonstrate a strong understanding of the most appropriate modern standards and practices, and how they are applied
  • coach and guide others in these standards

Programming and build (software engineering)

Level: practitioner

Practitioner is the third of 4 ascending skill levels

You can:

  • collaborate with others when necessary to review specifications
  • use the agreed specifications to design, code, test and document programs or scripts of medium-to-high complexity, using the right standards and tools

Prototyping

Level: expert

Expert is the fourth of 4 ascending skill levels

You can:

  • use a variety of prototyping methods
  • share best practice and coach others
  • look at strategic service design end to end

Service support

Level: practitioner

Practitioner is the third of 4 ascending skill levels

You can:

  • identify, locate and fix faults

Systems design

Level: expert

Expert is the fourth of 4 ascending skill levels

You can:

  • design systems characterised by high levels of risk, impact, and business or technical complexity
  • control system design practice within an enterprise or industry architecture
  • influence industry-based models for the development of new technology applications
  • develop effective implementation and procurement strategies, consistent with business needs
  • ensure adherence to relevant technical strategies, policies, standards and practices

Systems integration

Level: practitioner

Practitioner is the third of 4 ascending skill levels

You can:

  • define the integration build
  • co-ordinate build activities across systems
  • understand how to undertake and support integration testing activities

User focus

Level: practitioner

Practitioner is the third of 4 ascending skill levels

You can:

  • collaborate with user researchers and can represent users internally
  • explain the difference between user needs and the desires of the user
  • champion user research to focus on all users
  • prioritise and define approaches to understand the user story, guiding others in doing so
  • offer recommendations on the best tools and methods to use
Role Shared skills
Development operations (DevOps) engineer

Availability and capacity management

Information security

Modern standards approach

Programming and build (software engineering)

Prototyping

Service support

User focus

Systems design

Systems integration

Development process optimisation

Development process optimisation (management)

Infrastructure engineer

Information security

Modern standards approach

Systems design

Systems integration

Application operations engineer

Availability and capacity management

User focus

Change and release manager

Availability and capacity management

User focus

Command and control centre manager

Availability and capacity management

User focus

Updates

Published 7 January 2020

Last updated 31 July 2023

31 July 2023

  • Software developer was moved to the new software development role group.

7 January 2020

  • First published.