Software engineer

The job title ‘software engineer’ can cover a multitude of roles. Some of the many terms describing the same type of work include systems developer and software architect.

Software engineers have a strong technical background and a good understanding of how hardware and software work. Software engineers are likely to be involved in the design of the internal operations of computers – writing and coding the computer operating systems and software that is an integral part of the computer system.

In non-technical terms, the software engineer creates the ‘blueprint’ that makes a computer ‘tick’. This level of programming is highly complex and requires a strong grasp of mathematical reasoning and coding languages. Depending on the organisation, typical activities include writing and modifying programs to control and enable different systems to run simultaneously; testing code; diagnosing faults in software; and designing programs to solve them. All of these tasks involve a long and meticulous process.

Depending on your level of experience, you could find yourself engaged in one small but vital aspect of this, testing for example. Generally speaking, more experienced software engineers who have moved a few rungs up the career ladder will get involved in the writing and design stage. Such technical work can conjure up images of solitary ‘maths brains’ working alone in front of a computer, but software engineering is most definitely a team experience and involves a huge amount of communication and interaction within the team, in addition to consultations with clients (depending on the type of organisation employing you).

Working hours can be long, particularly if deadlines are imminent or if the work involves diagnosing and fixing faults. Opportunities to travel are very good. Many IT operations are located in Asia where overheads are cheaper; the USA and UK are the most common destinations, but all the major established EU countries have opportunities for those competent in their spoken languages.

The ideal candidate

Excellent technical and problem-solving skills are essential. Good communication and teamwork skills are also required, together with motivation, creativity and a willingness to learn.

Starting out

Typically the first year of a job could involve writing the code for a program under supervision, or formulating the objectives of a program. An average of three years’ experience is normally required before an engineer has a high enough level of technical competence to prepare detailed specifications from which programs are written.