What Software Engineers Actually Do
Software engineering is the discipline of designing, building, testing, and maintaining software systems — applying engineering principles (systematic design, testing, documentation, and lifecycle management) to the process of writing code, as distinct from programming as a purely individual craft skill. A software engineer's job typically spans more than just writing code: understanding requirements, designing a system's architecture before implementation, writing automated tests, reviewing other engineers' code, deploying and monitoring software in production, and maintaining and extending existing systems over time — the discipline is as much about managing complexity and change over a system's lifetime as it is about the initial act of writing a program.