TL;DR
- A software engineer creates computer programs: understanding what users need, designing and writing code, testing it, integrating it with other systems, documenting it and keeping it working after release. Prospects notes that titles in this field are not standardised, so software engineer, software developer and programmer describe the same work with different labels.
- The job has six duties: analyse requirements, design and write code, test and refine, integrate and deploy, maintain and fix, and document and collaborate. In England the level 4 software developer apprenticeship, typically 24 months, describes the occupation as building and testing high-quality code from a design specification.
- Employers look for programming skill in the languages the job uses, logical and mathematical thinking, testing discipline, problem solving and the ability to work with analysts, designers, product managers and other engineers. Many software engineers are graduates in computing or numerate subjects, but demonstrated technical ability counts.
Every organisation now runs on software, and someone wrote it. The title on that person's contract might be software engineer, software developer, programmer or a language followed by the word developer. The work is the same: understand what is needed, build it in code, make sure it works and keep it working.
This software engineer job description explains what the job involves, sets out six duties, explains why engineer, developer and programmer are one occupation with several names, describes the UK level 4 standard, lists the skills and qualifications employers ask for, gives a template that you can adapt and suggests how to describe the work on a CV.
Engineering teams work in sprints, releases and reviews, and their goals should be as visible as their code. See how New Dynamics Goals & OKRs keep targets and progress in one place.
What is a software engineer?
The Cambridge Dictionary defines a software engineer as “someone whose job is to create computer programs”, and a programmer, also computer programmer, as “a person whose job is to produce computer programs”. The two definitions are nearly identical, and that is the point.
Prospects, the UK graduate careers service, describes the job in its software engineer job profile: software engineers “use their skills in programming, applying logic and mathematical principles, to create computer software and IT solutions”, and will “create, maintain, audit, and improve systems to meet specific needs, often as advised by a systems analyst or architect”. On titles it is explicit: “Job titles and descriptions in this industry are not standardised. Instead of being labelled a software engineer, you may be called a systems/software/database/web programmer, engineer, or developer, depending on the system you're working with.” The programming language may even become part of the title.
Skills England's software developer apprenticeship standard, a level 4 standard typically taking 24 months, gives the purpose: “to understand a client's requirements as provided in design specification and then build and test high-quality code solutions to deliver the best outcome”. It adds that “Software developers are the creative minds behind computer programs”, that some develop applications for specific tasks and others the underlying systems that run devices or control networks, and that the occupation is found across every sector, from multinationals and government projects to small consultancies.
Software engineer duties: six responsibilities
- Analyse requirements. Find out what users and the business need, question it, and turn it into a specification the code can be built from. Prospects lists analysing and determining user requirements and creating technical specifications.
- Design and write code. Research, design and write new programs, from business applications to games and operating systems, in the languages and frameworks the job uses, to the team's standards.
- Test and refine. Write and run tests, review code, and refine and rewrite as necessary. Prospects puts it as writing and testing code, “refining and rewriting as necessary, communicating with any programmers involved in the project”.
- Integrate and deploy. Integrate existing software products, get incompatible platforms to work together and release the code into the environments where it runs.
- Maintain and fix. Monitor systems, correct defects, apply patches and updates, and develop existing programs by identifying areas for modification.
- Document and collaborate. Write operational documentation with technical authors, and work with project managers, designers, UX designers, other developers, systems analysts and sales and marketing colleagues.
Running through all six is a seventh: keep learning. Prospects lists learning about new technologies and continually updating technical knowledge among the responsibilities, because the tools change faster than in almost any other profession.

Engineer, developer, programmer: one job, several labels
| Title | What the label usually signals |
|---|---|
| Software engineer | The whole discipline: design, build, test, deploy, maintain, often with an engineering approach to quality |
| Software developer | The same work; the more common title in UK adverts and in the apprenticeship standard |
| Programmer | The older title, emphasising writing code; still used, especially for junior roles and in some sectors |
| Programmer analyst | A developer who also does the analyst's work of gathering requirements and specifying systems |
| [Language] developer | A developer specialising in one language or platform |
The Skills England standard describes where the level sits: a developer in a medium or large organisation typically works as part of a larger team with responsibility for some of the straightforward elements of the project, and in a smaller enterprise may be the only developer on a project, under direct supervision. Above that sit senior engineers, lead engineers and architects, whose job descriptions add design authority, code review and mentoring. For the analyst who often sits beside the developer, see our guide to what an analyst does.

Skills employers ask for
- Programming. Fluency in the job's languages and frameworks, and the ability to learn the next one. Name the stack in the advert.
- Logic and mathematics. Prospects puts logic and mathematical principles at the centre of the definition.
- Testing discipline. Writing tests, reviewing code and fixing defects before users find them.
- Problem solving. Diagnosing why a system does not do what it should, and fixing the cause rather than the symptom.
- Systems thinking. Understanding how the code fits with the platforms, data and services around it.
- Collaboration. Working with analysts, designers, product managers and other engineers, and communicating clearly in writing.
- Continuous learning. The standard and Prospects both treat it as part of the job.
Qualifications
Prospects says the area is open to all graduates but that applicants will be expected to have technical ability and a strong understanding of computers, that computer science, software or systems engineering, electronics, information systems, mathematics, financial technology and physics are the subjects most likely to help, and that many larger recruiters employ only graduates with proven technical skills and a good degree in a computer-related discipline, while smaller companies generally prefer computing, scientific or numeric degrees and may consider unrelated degrees where technical knowledge can be demonstrated. In England the level 4 software developer apprenticeship offers a work-based route, and a level 3 software development technician standard sits below it.
Software engineer job description template
Adapt the stack, the product and the level.
Job title: Software engineer [junior / mid-level / senior]
Reports to: Engineering manager or lead engineer
Hours: Full time, [office-based, hybrid or remote]
Purpose of the role: To design, build, test and maintain [the product or systems] in [languages and platforms], as part of a team delivering [what the software does] for [users or customers].
Main duties:
- Work with [product managers, analysts, designers] to understand requirements and turn them into technical specifications
- Design and write high-quality code in [stack] to the team's standards
- Write and run tests, take part in code review and refine the code
- Integrate with [systems and services] and deploy through [the release process]
- Monitor, maintain and fix systems in production, including patches and updates
- Document the work and collaborate across the team
- [Senior: lead design decisions, review others' code and mentor engineers]
Skills and experience:
- Proficiency in [languages, frameworks] and experience of [type of system]
- Strong logical and problem-solving skills and testing discipline
- Experience of version control, code review and [deployment practices]
- Clear written communication and collaboration
- Degree in computer science or a numerate subject, a level 4 software developer apprenticeship, or equivalent demonstrated ability
Measures of success: Features delivered to plan, code quality and defect rates, reliability of the systems owned, and contribution to the team's practices.
For the layout of the whole document, use our job description template. For the questions to ask the engineering manager above the role, see our IT manager interview questions.
How to describe software work on a CV
Employers want the stack, the systems, the scale and the outcomes. The lines below are invented examples, to show the form.
- Name the stack. “Three years building web applications in [language and framework] with automated testing and continuous deployment.”
- Show the system. “Built the booking service used by 40,000 customers a month.”
- Show quality. “Raised test coverage on the payments module from 40% to 90% and cut production defects by half.”
- Show integration. “Integrated the platform with two payment providers and a warehouse system.”
- Show collaboration. “Reviewed code for a team of six and mentored two apprentices.”
Common mistakes in software engineer adverts
The stack unnamed, or every technology listed. Name the languages and platforms the job uses now.
Engineer, developer and programmer used as if they were different grades. They are not. Say the level.
No product. Candidates want to know what the software does and who uses it.
Senior in name only. If the senior role reviews nobody's code and owns no design decisions, it is a higher grade, not a senior job.

Frequently asked questions
What does a software engineer do?
A software engineer creates computer programs: analysing requirements, designing and writing code, testing and refining it, integrating and deploying it, maintaining and fixing it in production, and documenting the work while collaborating with analysts, designers, product managers and other engineers.
What do computer programmers do?
The same job. Prospects notes that titles in the industry are not standardised, so programmer, developer and software engineer describe the same work of writing, testing and maintaining code. Programmer is the older title and is still used, especially for junior roles.
What is the difference between a software engineer and a software developer?
Usually nothing. Software developer is the more common title in UK adverts and in the apprenticeship standard; software engineer is more common in the United States and in organisations that emphasise engineering practice. The duties are the same.
What is a programmer analyst?
A programmer analyst is a developer who also gathers requirements and specifies systems, combining the analyst's work with the programmer's. The title is common in organisations with small technical teams.
What qualifications does a software engineer need?
Prospects says the area is open to all graduates with technical ability, that computer science and numerate subjects help most, and that larger recruiters often require a good degree in a computer-related discipline. In England the level 4 software developer apprenticeship, typically 24 months, is a work-based route.
What should a software engineer job description include?
The product and its users, the languages and platforms, the level, the six duties from requirements to maintenance, the team and its practices, the skills and qualifications required, and the measures of success.
Your next step: name the stack and the product
- State the languages, frameworks and platforms the job uses now.
- Describe the product and who uses it.
- Say the level, and for a senior role, what the senior engineer owns.
- Interview with a real problem from the codebase, not a puzzle.
An engineer's first weeks are spent learning the codebase, the practices and the people. Read and download our employee onboarding guide. The guide is free to read, and the PDF uses our short download form.
Want sprint goals, engineering objectives and review notes in one place for every team? Book a New Dynamics demo and bring your current approach. You can also email contact@new-dynamics.com.


