Software engineers design the software behind some of today’s most important systems, including smartphones, computer networks, medical devices, and financial systems, amongst others.

Software engineers design, build, test, maintain, and improve the software in computer systems. These systems may include those that control electrical and mechanical devices, computerized communication systems, financial systems, and information systems.

Software engineers will analyze the end user’s needs and develop solutions and specifications accordingly. They will research, design, develop, and test computer-based systems, and will develop data and network models in order to optimize the architecture of these systems and to evaluate their performance and design. They will plan and coordinate the development, installation, integration, and operation of these systems. Software engineers will also maintain the systems by assessing, testing, troubleshooting, and upgrading operating systems, communications environments, and applications software.