Welcome to What Does a Software Engineer Do? After watching this video, you will be able to Describe the types of software that software engineers develop and the technologies that they use Identify the categories of software engineers and the teams they work in, and Describe the day-to-day tasks and responsibilities of a software engineer Software engineers use their talents in engineering, mathematics, and computing to design and develop software that solves real-world problems for their users. If you’re an analytical thinker who enjoys problem solving, software engineering might be the career for you! Software engineers develop a plethora of different types of software, from desktop and web applications, to mobile apps, games, operating systems, and network controllers. They use many technologies to do this, including programming languages, development environments, frameworks and libraries, databases, and servers. There are two categories of software engineer: Back-end engineers, also known as systems developers, who build the computer systems and networks that front-end applications use. And front-end engineers, or application developers, who are more client focused. They create the software that users will interact with, such as Android, iOS, and Windows applications, and platform agnostic websites. Software engineers work in a wide variety of settings. You could work in a team developing: Off-the-shelf software, Bespoke software to meet a specific client’s requirements, or Internal software for users in your organization And within your team, you might work on: Data integration layers which access and load data from a variety of sources into your solution, Business logic which applies real-world business rules to the data in your solution, or User interfaces which enable users to interact with your solution. As well as building your own systems, you’ll also be testing, improving, and maintaining software built by your colleagues. On a day-to-day basis you might undertake tasks such as: Taking user specifications and designing new software systems to meet their requirements Writing code and testing that it works as expected Evaluating and testing new software programs Optimizing software programs for maximum efficiency Maintaining and updating existing software systems Documenting code so that other developers can understand it Presenting new systems to users and customers And some software engineers, such as DevOps practitioners, also integrate and deploy their code onto the underlying infrastructure. As well as building your own systems you'll also be testing, improving, and maintaining software built by your colleagues. The responsibilities of a software engineer are as many and varied as the tasks which they undertake. In a junior position you are likely to start out with a limited set of responsibilities focused on writing, testing, deploying and documenting code, but as your career progresses this will widen. And, in a senior role, you will likely have primary responsibility for multiple areas of the software solution including the planning and designing phases. In this video you learned that: Software engineers design and develop a range of software solutions Back-end engineers build the computer systems and networks And front-end engineers build the user interfaces Software engineers undertake a range of tasks, from designing and writing new software to maintaining and updating existing software As your career develops, you will move from being responsible for one small section of code to many areas of one or more products