What Software Engineering Managers Do
On the software engineering path, there are several leadership roles one might take. Software engineering managers, often called software managers or engineering managers, are responsible for overseeing a team of engineers and ensuring all technical aspects of development are taken care of properly. While they must understand programming well, their jobs focus more on ensuring their team of engineers completes their duties and has the resources they need in order to be effective.
Because they oversee the technical aspects of development, they work closely with product managers who are the conceptual visionaries, and sometimes considered the “CEO” of an individual product. Software engineering managers also work with project managers who oversee specific projects with clearly-defined end dates or objectives. Software engineering managers tend to set themselves apart more from either of the other two fields because their jobs tend to focus on people management, versus products and projects.
Who would enjoy a career in Software Engineering Management?
Software engineering managers typically come from an engineering background because they must have some knowledge of the technical tasks their engineers carry out in order to provide assistance as needed. Moreover, understanding software development best practices and procedures is an essential component of the job, so having firsthand knowledge is highly beneficial.
However, transitioning from an engineering position to a management position requires that the individual also have numerous leadership traits, such as being organized, having effective communication skills, strategic thinking, and being outcome-oriented. Having the ability to budget well may be beneficial, as many engineering managers are expected to ensure development costs stay within predetermined guidelines.
Who mightn't like the career?
Engineering managers work with many other professionals, including executives, marketing teams, sales, project management, and product management because each group will be defining some type of objective for the engineers to meet or may be involved in collaboration. Engineering managers who can’t listen objectively, strategize, or break down which engineers need to take which tasks will fail in a core component of their job. With many people being involved, it’s not a good career choice for someone who lacks organizational skills or cannot handle stress well. It’s also worth noting that managers have to be adept leaders and delegators. Coming from an engineering background, it can be challenging for some to avoid micromanaging, but giving the engineers freedom to work and expand their skills is an essential part of their growth. The role typically means no more active coding, so those wanting to write code versus people-manage are best to stay in an architecture or technical software development role.
Software engineering managers don’t always have a formal education, though at least five years of work as a software engineer is typically required. In order to get into the field most obtain at least a bachelor’s degree in a computer or programming-related field, though some gain practical knowledge on their own via programming boot camps or through certification programs.
Oftentimes, tech firms look for candidates who are a good fit for their corporate culture, so it’s helpful to learn what life is like inside the company before applying for a position. It’s also worth noting that companies will use different names to denote the same position and even those which use the same title may have different requirements and responsibilities, so it’s worthwhile to review many different options and examine the description closely.
Those applying for management roles will be expected to demonstrate the same knowledge as lower positions, though additional questions related to coaching, people skills, and leadership will also be asked.
- The 2 types of software engineering interviews and how to prepare for them
- Software Engineering Manager Interview Questions
- How do I prepare for a software engineering manager interview?
Moving into Software Engineering Management from another career
Most engineering management positions are entered into from a background in software development.
- iOS Engineer / Android Engineer
- UX/ UI Product Designer
- Front-End Software Engineer
- Back-End Software Engineer
- Product Manager
- Software Tester
- Quality Control Specialist
Software Engineer/ Individual Contributor (IC)
Role: There are several types of individual contributor (IC) positions that can lead to a software engineering management position; iOS Engineer, Android Engineer, Front-End Software Engineer, and Back-End Software Engineer are the most common. In these roles, the individual is responsible for carrying out programming tasks as assigned by their managers.
Lead Software Engineer
Role: Leads are individual contributors who have proven themselves to be adept engineers. They understand the strengths of the engineers in their teams and help make sure the right engineers are on the right projects. They also participate in projects as ICs. Tech companies often offer junior and senior-level lead positions.
Software Engineering Manager
Role: Software engineering managers usually have at least five years of experience as ICs, with a minimum of two or three spent as leads. They typically manage groups of 5-10 engineers and handle all personnel-related functions, from interviewing through training, people development, scheduling, and disciplinary action. They’re responsible for ensuring objectives are met and that projects stay within budget as well. Engineering management positions may also be given their own hierarchy, with upper-level positions such as senior engineering manager or principal engineering manager.
Director of Engineering / Chief Technology Officer
Role: Those who have proven themselves as managers may move into director roles. Directors are responsible for understanding the business aspect of things, as well as all the duties carried out by the ICs and managers. They make sure the staffing levels and expertise is adequate to carry out tasks, establish budgets, and coordinate efforts between various departments. The next step up from this may be a senior director role or a VP, followed by an executive role such as Chief Technology Officer (CTO), though most of the upper levels require at least a master’s degree and business knowledge.
The skills and degrees of those on the software engineering career track transfer readily, which makes it possible to work anywhere in the world. Travel for the job, itself, is generally minimal, though many attend conferences, lectures, and niche-specific events to stay abreast of events and trends, as well as to improve their skills.
Software Engineer: According to PayScale, the average salary of a software engineer is about USD$82,000 in America, CAD$70,000 in Canada, £34,000 in the UK, AU$75,000 in Australia.
Lead Software Engineer: USD$109,000, CAD$89,000, ₤46,000, AU$104,000
Software Engineering Manager: USD$129,000, CAD$110,000, ₤62,000, AU$116,000
Director of Engineering: USD$123,000, CAD$136,000, ₤68,000, AU$148,000
Profit sharing, bonuses, and commission may increase take-home pay by nearly 50% in some cases.
Why Software Engineering Managers move on
While most people move into software engineering management from an IC role, the jobs are completely different. Former engineers sometimes miss the satisfaction that comes with completing a project and knowing that their skills were ultimately responsible for an outcome. Managing people, on the other hand, is much less tangible. Moreover, some face challenges with their superiors or simply don’t enjoy carrying out business-related duties. In these cases, most return to their IC or lead roles. Others tend to stay within tech or create their own startups. For further reading, see “Why I Left Management: the engineering technical track vs. management track” and “Why I Gave Up My Engineering Career.”