Software engineers apply computer science, engineering and mathematics to design, develop, and test software for a range of applications, systems and computer networks. For example, they might develop programs that do recordkeeping and payroll, or develop an intranet, an application for iPhone or iPad, and so on. Software engineering focuses on software development, but goes beyond programming to also assess and meet customer needs, as well as designing and testing software. Developing software solutions often involves assembling extensive amounts of code into working applications, as well as updating and fixing problems in existing software.