In the last few years, we've been witnessing a lack of software engineers in our industry. However, there's a shortage of another critical type of talent: engineering managers.
Being an engineering manager is a challenging, responsible, and sometimes stressful job. At the same time, it's also rewarding, considering the fact that you build, lead, and mentor teams of engineers and coordinate them into the successful delivery of software products.
So, what's an engineering manager's usual career path, and what does an engineering manager do? I've been an engineering manager for more than seven years and have worked in several companies and organizational structures. In this blog post, I'll share my personal experience and thoughts.
So, without further ado, let’s see how to become a successful engineering manager.
Table of contents
The Career Crossroad
As they progress through their career path, all software engineers, at some point, come to an engineering career crossroad where they ask themselves:
Should I move towards a more organizational and people-oriented leadership position, like an engineering manager, or continue my technical path into roles like software architect and principal engineer?
This is not an easy decision to make. Moving from one path to the other in later stages is more complicated than it looks, especially since both roles' responsibilities and day-to-day activities are significantly different. In the following paragraphs, we'll take a closer look at the first option, becoming an engineering manager.
Before becoming an engineering manager, the first step is leading a team of engineers in the role of engineering team lead. That is a great opportunity for senior engineers to taste the flavor of engineering leadership roles since being a team lead touches on some of the responsibilities that an engineering manager usually has. In my experience, engineers who love being team leaders and leading a small group of engineers have the pre-requirements and skills to become great engineering managers.
The next career step for a team lead is becoming an engineering manager, so what is an engineering manager? There are different definitions of the engineering manager role in the industry, and responsibilities are slightly different from company to company. Generally, these are the most common responsibilities of an engineering manager:
- build and lead teams of engineers
- coordinate the technical delivery of their teams
- set success metrics for their teams
- collaborate with every product owner, engineering product manager, and other stakeholders, and help in shaping the product roadmap
- set the technical strategy and vision for their teams
- create the organizational structure of their teams, open new positions, and set up and lead the hiring process for the open roles
- grow and mentor engineers and help them move to the next ladder in their engineering careers
- in some companies, managers deal with finances and prepare, request, present, and justify budgeting plans
In the following section, we'll see what a senior engineer who has experience in team or tech lead positions can expect from an engineering manager role.
Code Less, Present More
Being an engineering manager means spending less time in your favorite IDE coding mode and spending more time preparing documents, charts, tables, and slides.
It also means attending a lot of meetings and interacting with different people in the organization, starting from other engineering managers and product managers to C-level executives, clients, and investors.
So, if you have solid communication and presentation skills and you like presenting at meetings and communicating with a lot of people, it's definitely a good sign that the engineering program manager role is suitable for you.
People management is a big part of the daily activities of engineering managers. They usually lead from 10 up to 20-25 engineers distributed in several teams with appropriate team leads. This doesn’t mean that you'll constantly be working with all engineers on a daily basis. Engineering managers usually work and cooperate daily with the team leads, but they do monthly or quarterly catchups and one-on-one meetings with all engineers in their teams. One of the responsibilities of the engineering manager is to grow and mentor the engineers, set the right evaluation process, and help the engineers progress in their engineering careers.
Hiring the Right People
Hiring the right people for their teams is another responsibility of the engineering manager. This means setting up a hiring process that will be able to identify the candidates who have not only excellent technical skills but also the right fit for the team and the organization in general. Just as the resume for an engineering manager has to show the most essential skills, the same rules apply when you have to hire the right people.
Technical Strategy and Processes
As I mentioned earlier, engineering managers do very little or no coding. However, they are responsible for the technical vision and design for the product, the technical documentation, and the release process. Depending on the size of the whole managing engineering team, they create or participate in creating the product's architecture.
They also are responsible for setting up the right processes and software development methodologies for their teams and automating them as much as possible.
Being responsible for something doesn’t mean doing everything by yourself. Great engineering managers make sure to always get input and ideas from the team leads and engineers they are leading.
Priority of Work and Technical Debt
Although the product management team sets the priority of work for the engineering teams, the engineering manager has a big say in what will come next, depending on the capacity of the team and the priority requested by the stakeholders.
Let’s not forget managing technical debt while developing new features, which is very important for the engineering manager. Making some technical tradeoffs while building a product is an unavoidable part of the process. The engineering manager must decide when these debts will be repaid and adequately present the stakeholders' reasons, costs, and benefits.
Always Be There for Your Team
It's possible for underperformance of software engineers to happen, but great engineering managers are always there for the engineers in their teams, whether it's for resolving some technical challenge, conflict in the team or supporting the team during long night hotfixes.
Being able to mentor, support, and grow the engineering members of your teams, set their career goals, and help them find the right direction is one of the best perks when it comes to being an engineering manager.
Constantly Learn and Self-Develop
It's vital for all engineers to constantly stay up to date with the latest technologies, frameworks, and trends. Additionally, as an engineering manager, you must develop your leadership and soft skills by listening to relevant podcasts, reading engineering leadership blogs and engineering manager books, and visiting conferences. And most importantly, implement the new skills and findings in the day-to-day work of your teams.
In most cases, every successful senior engineering manager (with some exceptions) was a software engineer in the past. So, if you are a senior software engineer and the thoughts mentioned in this post seem attractive, you have great potential to become a successful software engineering manager with hard work and constant learning. You may not need an engineering manager certification, but dedication is necessary. One thing is certain: the list of open job positions for this role is enormous.