How to Become a Software Engineering Manager

All Posts
Share this post
Share this post

Whether you’re about to take the next step in your career or simply looking a few steps ahead, it is valuable for everyone in the software field to understand what makes a good software engineering manager.

However, as you’ve probably discovered, finding clear answers isn’t easy. This guide will help you prepare for an Engineering Manager opportunity, whether you apply for a new job or move up in the ranks at your current company.

First, let’s review the basics of the engineering manager role.

The Software Engineering Manager Role

Generally speaking, software engineering managers are responsible for the overall productivity and well-being of software engineers who report to them.

The most important responsibilities of a software engineering manager include:

  • Mentoring engineers, conducting performance reviews and determining compensation
  • Working with product managers and business stakeholders to ensure that their needs are met Determining roles, responsibilities, and work assignments
  • Improving systems and processes (“cutting through red tape”) to help the team work more efficiently
  • Maintaining team morale
  • Resolving conflicts and disagreements
  • Recruiting and hiring new engineers

Also, depending on the organization, some software engineering managers will help manage projects and may even write code.

Software engineering managers who do not write code typically have 10-15 direct reports, while it is more common for “player/coach” managers who work alongside engineers to have 4-6 direct reports.

Depending on how the organization is structured, some managers will oversee engineers working together on the same product team. In other cases, managers may be responsible for engineers in a particular skill area who work on separate teams, like back-end engineers or QA.

What is the Career Outlook of a Software Engineering Manager?

According to the U.S. Bureau of Labor Statistics (BLS), Computer and Information Systems Management is expected to grow by 11% by 2030, and jobs in Software Development are predicted to grow an average of 22% in the same amount of time.

Considering those numbers and the steady increase of jobs in the software industry, we can expect to see more management positions popping up for qualified applicants..

What Career Opportunities are Available?

A software engineering manager is a major checkpoint on the career path for people who want to jump from the technical track to the management track. After spending some solid years here, you can move into more senior positions, such as a Director or VP level engineering management roles.

However, it’s important to note that moving up to more senior roles is difficult because they require proficiency in soft and technical skills.

If your goal is to eventually take on a c-suite level role, you will need education, training, experience, and skills set you apart from the rest of the pack.

How to Become an Engineering Manager

Becoming a Software Engineering Manager isn’t like moving from a level II engineer position to a level III role.

To make this major career move, you need to have the right training and experience. Here are key steps to becoming an engineering manager:

1. Become an Experienced Software Engineer

Before managing other engineers, you need to do the job yourself. There is no substitute for first-hand experience with the challenges that software engineers face day-to-day.

You will need 1-2 years of experience working as an individual contributor at an absolute minimum. However, 3-5 years is a more common time frame for software engineers to take on their first management role.

2. Gradually Acquire Leadership Responsibilities

Opportunities often arise for engineers to take on specific leadership or management tasks before a full-on promotion to software engineering manager.

If you are eager to see whether you would be a good fit for management, consider looking for leadership opportunities in the following areas:

  • Mentor new team members
  • Manage an intern or contractor
  • Interview job applicants
  • Lead projects
  • Lead team meetings and/or become a scrum master
  • Review code
  • Identify and advocate for internal improvement projects like refactoring
  • Participate in committees or define team standards/guidelines
  • Write blog posts, white papers, or submit patents related to your work
  • Help resolve conflicts and disagreements on the team.

It is also important to let your manager know that you are interested in leadership responsibilities. They will probably be happy to have your help and lighten the load of managing the team.

3. Improve Weak Skill Areas

To be a good software engineering manager, you will need strong skills in the following areas:

  • Communication - It is essential to convey information to direct reports when offering guidance and higher-level managers when presenting results or explaining challenges.
  • Empathy - Listening and understanding people's problems will allow you to help them, gain their trust, and build morale.
  • Organization - Staying on top of all your assigned tasks and responding to requests in the expected time frame is important for individual contributors but essential for managers.
  • Technical Knowledge - Engineering managers don’t need to be the top technical experts on their teams, but they do need to know enough to assess others and delegate decisions to the right people

Very few engineers start strong in all these areas, so aspiring managers need to get feedback on their performance from their manager and focus on skill areas that need the most improvement.

4. Ask for a Promotion

The best way to ask for a promotion will depend on your organization’s HR and performance review processes. In some places, you may need to wait for an annual review cycle, while in others, you may need to apply for an internal job opening.

Whatever process your organization follows, the best way to get promoted to a software engineering manager is to already be doing as much of the job as possible. If you help your manager by proactively resolving problems, mentoring others, and leading projects/meetings, the promotion will become inevitable. You don’t need to wait for formal recognition to become a de facto manager.

If you ever feel stuck, such as if you do not get along with your manager or don’t think you are receiving good mentorship, you should try to move teams as quickly as possible.

Capable engineering managers are in very high demand, so keep in mind that your best opportunity to become a manager may be to take a job at another company.

How Much Does a Software Engineering Manager Make?

Software engineering manager compensation varies widely between companies and levels of experience. The form of compensation can also vary a lot, with tech companies and start-ups offering a significant amount of stock, while others may have a higher base salary or bonuses.

To estimate your salary, your best bet is to match your years of experience and unique skill set to salary reports on sites like Glassdoor, Payscale, Indeed, and Levels.fyi.

To give you a starting point, levels.fyi lists the average annual compensation for the lowest level of software engineering manager at Microsoft as $230k, with a $168k base, $39k stock, and a $23k bonus. Netflix, which is known for paying at the top of the industry, offers a staggering $600k median annual salary for software engineering managers, all in base salary.

The Bottom Line

Stepping into a management role isn’t like moving up to a higher engineer level. It is more a career transformation that requires a complementary set of skills and training.

But, if you’re set on obtaining the role and doing the job well, you can prepare in many ways.

By assessing your current skill set and plugging the holes with specialized education, formal training, and mentorship, you’ll be able to grow your career with confidence.

Engineers First
Measure the business impact of things that slow down engineering