Software Engineer Job Description
Software engineers are computer specialists who research, design, analyze, evaluate, develop, test and maintain software and various information systems. Their job can also include training clients and their employees and providing support. The term software engineer is sometimes used simultaneously with software developer or programmer, which refers to an occupation that does not necessarily require academic training and professional certification, and does not imply legal liability.
Software engineers typically investigate software applications, write new software, and provide operating manuals. They can also produce specifications and train future users. When working with existing systems, they usually define problems and then develop and propose IT solutions to improve their efficiency. Software engineers' work also frequently entails systems analysis for the purpose of recommending purchases.
Software engineers usually specialise either in applications software engineering or systems software engineering. Applications software engineers create and deploy applications that perform certain tasks for users, and systems software engineers are responsible for the construction of an entire computer system.
Programming skills, analytical thinking, problem solving, and an excellent knowledge of software, theoretical principles of computing, and computer systems are key to becoming a software engineer. Engineers must have a healthy interest in always continuing their education and training, studying new development tools and IT equipment, and keeping up with new trends and technologies. Since their work often includes providing documentation and creating proposals, they must know how to use presentation tools and create diagrams, models, flowcharts and layouts.
Good communication skills are essential for contractors because their clients usually have a limited knowledge of computer systems. Software engineers must also be exceptionally good listeners, as their work always requires them to address the needs of users and businesses that hire them. Understanding the commercial aspects of software can also be very beneficial for career advancement.
Management and business skills, as well as people skills, are an asset, especially in a recession market, as they can make a software engineer's job more difficult to offshore.
Software engineers have degrees either in computer or software engineering, or in information technology, computer science, and information systems. They can also enter the field with degrees in electrical engineering, science, mathematics, or technology. Sometimes they start out as computer programmers and work toward being promoted to software engineering roles. Graduates who do not have a degree in a related field can opt for a postgraduate course in IT to improve their odds of getting hired. Few companies are willing to take a chance on a self-taught software engineer.
In the UK, software engineers are licensed by the British Computer Society as Chartered IT Professionals and they can go on to become Chartered Engineers (CEng). They may also be licensed by the Institution of Engineering and Technology to qualify for the status.
Certification programs are mostly focused on specific technologies and types of software, and they are managed by companies that produce and sell the software, as Apple, Oracle, Microsoft and IBM do. Engineers can also obtain certifications for specific programming languages.
Software engineers often work with businesses and organisations as contractors, but some companies prefer to hire in-house specialists for software development.
Software engineers are typically employed by software, IT and telecommunications companies and by IT consulting firms. After gaining some experience in the field, they can become self-employed or make a career move to consultancy.