Software engineers apply scientific and mathematical principles to create computer software and solve problems
As a software engineer, you'll work in a constantly evolving environment, due to technological advances and the strategic direction of the organisation you work for.
You'll create, maintain, audit and improve systems to meet specific needs, often as advised by a systems analyst or architect. Another task will be to test both hard and software systems to diagnose and resolve system faults.
You may also write diagnostic programs and design and write code for operating systems and software to ensure efficiency. Making recommendations for future developments where required.
Job titles and descriptions in IT are not standardised. Instead of a software engineer, you may be called a systems/software/database/web programmer, engineer or developer, depending on the system you're developing. Alternatively, the programming language you use may become part of your title, such as Java or C# developer.
The work of a software engineer can also form part of a multimedia programmer role.
As a software engineer, you'll need to:
- analyse user requirements
- write and test code, refining and rewriting it as necessary and communicate with any programmers involved in the project
- research, design and write new software programs (e.g. business applications or computer games) and computer operating systems
- evaluate the software and systems that make computers and hardware work
- develop existing programs by analysing and identifying areas for modification
- integrate existing software products and get incompatible platforms to work together
- create technical specifications
- write systems to control the scheduling of jobs or to control the access allowed to users or remote systems
- write operational documentation with technical authors
- maintain systems by monitoring and correcting software defects
- work closely with other staff, such as project managers, graphic artists, UX designers, other developers, systems analysts and sales and marketing professionals
- consult clients and colleagues concerning the maintenance and performance of software systems, with a view to writing or modifying current operating systems
- investigate new technologies
- continually update technical knowledge and skills by attending in-house and external courses, reading manuals and accessing new applications.
- Typical graduate software engineer salaries start from around £28,000 to £35,000 a year.
- Software engineers with a few years' experience can usually earn between £40,000 and £60,000.
- At senior or management level, you can expect to earn up to £70,000 a year, with some lead software engineers earning more.
The salary you'll receive is dependent upon the company, location and nature of your employer's business. The highest salaries can be found in the finance, pensions and telecoms sectors in London and the South East. Bonus schemes may be available.
Income figures are intended as a guide only.
Related case studies
Working hours are typically 9am to 5pm. However, longer hours are often necessary towards the end of projects as deadlines approach, as well as during the testing stage so that systems can be tested when they're not being used. In some cases, software engineers may be required to be on call to deal with problems. This can involve evening and weekend work in a shift pattern. Allowances may be available in these cases.
Self-employment and freelance or contract work is possible as there is an increasing market for contract software engineers with specialist knowledge. Career breaks, on the other hand, may be difficult due to the need to keep technical knowledge up to date in a rapidly changing environment.
What to expect
- The job involves spending many hours at the keyboard, so high levels of concentration are required. Regular breaks are essential to minimise potential adverse health effects such as eye strain or back problems.
- The work is mainly office based or in computer laboratories, although full or part-time remote working is becoming increasingly common.
- Projects may be undertaken alone or in small teams.
- Women are currently underrepresented in this profession and gender imbalance is a recognised issue throughout the IT industry. Steps are being taken to redress the balance. Women who want to work in technology should visit Women in Technology for information and jobs.
- Depending on the nature of the business, travel within a working day or absence from home at night may be required. This is more likely with consultancy work. More travel is involved in installation and implementation work.
Although this area of work is open to all graduates, applicants will be expected to have some technical ability. Studying one of the following subjects is likely to increase your chances of employment:
- computer science
- computer software or computer systems engineering
- information systems
Many of the larger graduate recruiters will only employ graduates with proven technical skills and a good degree (2:1 or above) in a computing-related discipline.
Smaller companies generally prefer degrees of a computing, scientific or numeric nature. In some cases, however, graduates with an unrelated degree may be considered if their technical knowledge and enthusiasm can be demonstrated.
Graduates in non-computer-related subjects may consider taking a postgraduate IT conversion or technical postgraduate course.
An HND in a computer-related subject may improve chances of entry and candidates with substantial systems development experience may be considered.
Entry without a degree or HND is unlikely, although it may be possible after gaining considerable experience in systems development as an assistant.
Employers will usually look for evidence of continuing professional development (CPD) outside of the classroom. Project programming experience can be used as evidence of this during the application process, and shows you are technically adept and have effective problem-solving skills.
You'll need to show evidence of the following:
- knowledge of computer systems and technologies
- technical competency
- the ability to communicate with clients, colleagues and management to explain complex issues clearly and concisely
- a meticulous and organised approach to work
- a logical, analytical and creative approach to problems
- thoroughness and attention to detail
- business skills and commercial awareness
- the ability to work both in a team and alone and to manage your own workload
- a motivated approach to your career and a willingness to further develop skills and knowledge
- an ability to learn new skills and technologies quickly
- an awareness of current issues affecting the industry and its technologies.
Relevant work experience is a good way of demonstrating a genuine interest in computing and is regarded favourably by employers. There are opportunities to do this through course-related placements, work shadowing or a year in industry.
Software engineers are employed in large companies across a range of sectors, and increasingly in small to medium-sized enterprises (SMEs) too.
- specialist IT firms - such as IT consultancies, large IT providers, software development, internet providers and training firms; organisations that use IT software, systems and equipment, including retailers, law firms, business intelligence and market research organisations, education providers, the armed forces, the public sector and voluntary sector organisations.
- manufacturing industry - including automotive, navigation, telecommunications, manufacturing and construction companies.
- financial services - including global investment banks, financial/banking organisations, security market specialists and the pensions sector.
- public utilities - covering energy and water supply, energy extraction and transport.
You may have a more defined role and work within a group of IT specialists which can include systems analysts, systems designers and systems testers. However, in some companies, software engineering may be offered as part of a wider role, so look beyond the job title.
Consultancy is another employment option for software engineers, and consultant roles may include other elements, such as analysis, implementation and support.
Look for job vacancies at:
- Ashdown Group
- Bubble Jobs
- Contractor UK - specialises in contract jobs.
- Women in Technology
Software engineer jobs
It's vital to keep up to date with changes and developments in the industry and to take responsibility for updating your technical skills and knowledge.
Large graduate employers often offer a structured programme, where you'll gain experience in team-related projects, across different work areas. Most companies offer ongoing training, either in-house or via external courses.
Large graduate employers often offer a structured programme, where you'll gain experience in a number of team-related projects in different work areas. Most companies offer ongoing training, either in-house or via external courses.
If you're a freelance contractor or employed by a smaller company, you may need to consider the cost and time implications of taking responsibility for your own training.
You can complete courses to obtain a variety of software-specific certifications, like Microsoft Learn, Certified Scrum Master (CSM) and Certified Ethical Hacker (CEH). These courses can be expensive but are recognised throughout the industry and can enhance your career prospects when combined with experience.
Other professional qualifications are available through BCS (The Chartered Institute for IT). BCS Professional Certificates come in foundation, intermediate, practitioner and higher levels. BCS can also help by providing information and guidance to members on recognising and planning learning needs and developing areas of expertise.
Up-to-date information on training and relevant industry-recognised qualifications is also provided by the Institution of Analysts and Programmers (IAP).
To further your career progression, you may consider training in areas such as business, management and finance.
It's usual to start your career in an entry-level post, with supervision. Typical work could involve formulating the scope of, and objectives for systems, and designing code.
After around three years, depending on the ability and experience gained, you may progress to preparing detailed specifications from which programs may be written and be competent to work at the highest technical level.
A senior software engineer often supervises the activities of a team of developers for a large project or several smaller projects. This usually requires a minimum of five years' experience.
Progression is mainly into management via team leadership and project management roles, or to designer/consultant via technical specialisation. Transfer between organisations for advancement is often possible.
You may choose to remain within one organisation, perhaps even in one role for much of your working life or you could decide to expand and develop into broader aspects relating to software engineering, such as technical writing, IT training and education or software architecture.
Both BCS and IAP provide up-to-date information and advice on career development.