A Software Engineering Manager (SEM) is a multifaceted role, blending the technical expertise of a seasoned software engineer with the leadership and strategic skills of a manager.
At their core, SEMs are responsible for leading teams of software engineers (SWE). They typically:
- Manages the design, development, and maintenance of software applications or services;
- Directs or supports the work of Software Engineers to promote the best practices and foster improvement;
- Has a good comprehension of software development, including topics such as programming, testing, building, deployment & delivery, software architecture & design, and many more.
There are a variety of software development concepts, practices, tools, etc., important to understand, such as but not limited to:
When reading The Manager’s Path, written by Camille Fournier (Managing Director of Engineering at JP Morgan Chase & Co), I found the following description for the Engineering Leader role, which is the leader of a team.
The description is useful for SEMs who want to understand their place and want to develop skills, as it covers all the basics of the role.
The engineering lead will spend less time writing code, but they still engage in small technical deliverables, such as bug fixes and small features, without blocking or slowing down the progress of their team. More than writing code, they hold responsibility for identifying bottlenecks in the process and roadblocks to success for their team and clearing these roadblocks.
The person who fills this role is expected to have a large impact on the success of [the organization] as a whole. In particular, leaders in this role are capable of identifying the most high-value projects and keeping their team focused on these projects. As part of keeping the team focused, the engineering lead will partner closely with the product lead to manage project scope and ensure the technical deliverables are met. In addition to focusing the team, they are capable of identifying headcount needs for the team and planning and recruiting to fill these needs.
The engineering lead is an independent manager. They are comfortable managing team members with different skill sets from their own. They communicate expectations clearly to all team members, and solicit and deliver individual feedback frequently (not just in the scope of review periods). In addition to strong management skills, the engineering lead acts as a leader for the technical roadmap for their product group (pillar). They clearly communicate the timeline, scope, and risks to their pillar partners, and lead the delivery of major initiatives on clear timelines. Additionally, they identify areas of strategic technical debt, do the cost/benefit analysis for resolving this debt, and communicate suggested timelines for prioritizing this to the management team.