Software engineers use their skills in programming, applying logic and mathematical principles, to create computer software and IT solutions
As a software engineer, you'll create, maintain, audit, and improve systems to meet specific needs, often as advised by a systems analyst or architect. You may be tasked with writing programs using code and designing software, including operating systems.
You might also test and upgrade hardware and software, as well as help resolve IT-specific issues. You may also make recommendations for future developments, as and when required.
Due to technological advances and the strategic direction of the organisation you'll be involved with, you'll need to adapt to a constantly evolving environment.
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.
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.
Responsibilities
As a software engineer, you'll need to:
- analyse and determine user requirements
- write and test code, refining and rewriting as necessary, communicating with any programmers involved in the project
- research, design, and write new software programs, such as business applications or computer games, and operating systems
- evaluate the software and systems that make computers and hardware function
- 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, including 'patching' software with new updates to keep them current or to fix any issues
- work closely with other staff, such as project managers, graphic artists, UX (user experience) designers, other developers, systems analysts, and sales and marketing professionals
- discuss with clients and colleagues about the maintenance and performance of software systems, with a view to writing or modifying current systems
- learn about new technologies related to your field
- continually update technical knowledge and skills by attending in-house and external courses, reading manuals, and accessing new applications.
Salary
- Typical graduate software engineer salaries average £30,000 to £31,000 a year.
- Software engineers with a few years' experience can usually earn between £42,000and £69,000, with an average salary of around £45,000 per year.
- At senior or management level, you can expect to earn roughly £84,000 a year, with some lead software engineers earning over £100,000.
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 Southeast. Bonus schemes may also be available.
Income figures are intended as a guide only.
Working hours
Working hours for software engineers are typically 9am to 5pm, Monday to Friday. However, longer hours are often necessary towards the end of projects as deadlines approach (known as 'crunch time' in areas such as video games development), as well as during the testing phase.
In some cases, you may be required to be on call to deal with any problems. This can involve evenings and weekends, working in a shift pattern. Allowances may be available in these cases.
Self-employment, as well as freelance or contract work, is possible as there's an increasing market for 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 industry.
What to expect
- The job involves spending many hours at a keyboard and screen, so high levels of concentration are required. Regular breaks are essential in order to minimise adverse health effects, such as eye strain or back problems.
- The work is mainly office-based or in computer laboratories, though remote working is becoming increasingly common.
- Projects may be undertaken alone or in small teams.
- Women are currently underrepresented in this profession - accounting for just 20% of the tech workforce - and gender imbalance is a recognised issue throughout the IT industry. However, steps are being taken to redress this imbalance. Women who want to work in technology should visit Women in Tech for information and job leads.
- Depending on the nature of the business, travel within a working day or being away from home may be required. This is more likely with consultancy work, and more travel is involved in installation jobs.
Qualifications
Although this area of work is open to all graduates, applicants will be expected to have some technical ability and a strong understanding of computers. Studying one of the following subjects is likely to increase your chances of employment:
- computer science
- computer software or computer systems engineering
- electronics
- information systems or information technology
- mathematics
- financial technology, often referred to as 'fintech'
- physics.
Many of the larger recruiters will only employ graduates with proven technical skills and a good degree (2:1 or above) in a computer-related discipline.
Smaller companies generally prefer degrees of a computing, scientific or numeric nature. In some cases, 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 related subject might improve chances of entry, and candidates with substantial systems development experience may be considered.
Entry without a degree or HND is unlikely, although it’s possible after gaining considerable experience in systems development as an assistant.
Employers will usually look for evidence of continuing professional development (CPD) outside the classroom. Project programming experience can be used as evidence of this during the application process, as it shows you’re technically adept and have effective problem-solving skills.
Skills
You'll need to show evidence of the following:
- knowledge of computer systems and technologies, both hardware and software
- 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 and problem solving
- thoroughness and attention to detail
- business skills and commercial awareness
- the ability to work both in a team and alone, as well as manage your own workload
- a motivated approach to your career and a willingness to further develop your skills and knowledge
- an awareness of current issues affecting the industry and its technologies, such as generative AI.
Work experience
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 the industry.
You may already have some personal experience from working on your own projects, which could be of interest to potential employers. Software engineers are typically passionate about what they do and may already have a portfolio or some examples to show to potential employers or work experience placements.
Employers
Software engineers are employed in large companies across a range of sectors, and increasingly in small to medium-sized enterprises (SMEs), too. These include:
- specialist IT firms - such as IT consultancies, large IT providers, software development specialists, internet providers, and training firms; organisations that use IT software, systems, and equipment, including retailers, law firms, business intelligence and market research companies, education providers, the armed forces, the public sector, and the voluntary sector.
- manufacturing industry - including automotive, navigation, telecommunications, manufacturing and construction companies.
- financial (fintech') services - including global investment banks, financial or 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 software 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 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.
- CWJobs
- JobServe
- MCVJobs
- Technojobs
- VIQU
- Women in Tech
Specialist recruitment agencies, such as Michael Page, commonly handle vacancies, including those in the tech and IT industries.
Professional development
It's vital to keep up-to-date with changes and developments in the industry, and to take responsibility for improving your technical skills and knowledge.
Large graduate employers sometimes offer a structured programme, where you'll gain experience in team-related projects and across 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 undergoing 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), which is useful for cybersecurity.
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 The Chartered Institute for IT (known as BCS). BCS Professional Certificates come in foundation, intermediate, practitioner, and higher levels. They can also provide information and guidance to members about recognising and planning learning needs, as well as 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.
Career prospects
It's usual to start your career in an entry-level post, often with supervision helping you along the way. 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. This is a more technical aspect of being a software engineer.
A senior 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 of experience.
Progression is mainly into management via team leadership and project management roles, or to designer/consultant positions via technical specialisation. Transferring between organisations for advancement is often possible.
You may choose to remain within one organisation, perhaps even in one role, for much of your career, 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 current information and advice on career development.