liveBook · Manning

Software engineer

As explained in Think Like a Software Engineering Manager

A software engineer is a professional who applies engineering principles to the design, development, testing, and maintenance of software.

A software engineer is a technical contributor whose work supports project delivery, engineering quality, and team success. The role can develop toward senior engineering positions or shift toward adjacent roles such as technical program management or product management. section 1.5 section 3.3.2

Software engineering differs from engineering management. An engineering manager combines engineering expertise with management, overseeing engineers, coordinating with other teams, prioritizing work, and resolving conflicts; a software engineer primarily contributes technical expertise and delivery. section 1.1 section 1.5

Common expectations around the role include:

  • Build technical capability through training, mentorship, feedback, and increasingly challenging work. section 3.3.2 section 8.4.1
  • Contribute to project delivery while adapting to changing requirements and understanding dependencies and risks. section 3.3.2
  • Develop toward greater responsibility, including senior engineering roles or transitions into related functions. section 4.5.2 section 8.4.1

Career growth through changing responsibilities

A novice intern received tailored guidance, constructive feedback, self-paced learning, and new challenges before progressing to software engineer and eventually senior software engineer. In another case, an engineer whose interests shifted away from coding moved into technical program management through shadowing, mentorship, and a time-boxed coaching plan. section 3.3.2 section 4.5.2

How Think Like a Software Engineering Manager covers it

How deep it goes
Connects the role to delivery, technical development, career progression, and role changes, but does not detail engineering methods or implementation.
Examples
Uses an intern’s progression to senior engineer and engineers’ transitions into technical program management as career examples.
What you can do after
Evaluate software-engineer growth through technical skills, project delivery, mentorship, progression, and possible role transitions.
How it connects
Ties software engineering to engineering management, technical program management, product management, project delivery, mentorship, and career development.

Related concepts

This explainer was generated by Manning's knowledge graph from the text of Think Like a Software Engineering Manager. The section links point to the parts of the book it draws on.