From software developer to engineering manager
Software developers as technical persons find a desire in making stuff. Engineering the solutions through coding, setup, installations, with its own ingenuity. They gotta love what they are doing, to be really good at it. And they stick to it.
Throughout the years, the engineer gets promoted. At some point, you become a team lead and stay in that position for some time. The biggest responsibility is to keep the high-quality bar in the team. It is usually reflected through code, architecture, and mentorship of younger team members.
Delivery of good results brings benefits and you get into the position of leading the whole project. The stakes get bigger. Less time spent on coding, but more on communication with product managers, customers, guiding team members.
And you are getting better and better, so you get an offer to be an engineering manager. Naturally, you accept, without fully understanding what does it mean for you.
What is an engineering manager?
First and foremost. Software engineer, that become engineering manager, is not promoted. It is a transition from a technical role into a managerial role. A career choice has been made that is no longer technical. After a decade of work, you're in beginner's shoes again, googling this article eventually.
It's completely fine to ask yourself then "What should I do?".
If you have someone to show you direction and mentor you, consider yourself lucky. Because 14 out of 15 engineering managers are coming from the software development shoes, without any support provided by the company or upper-level management. So, don't be too stressed, your company is no different.
Engineering manager roles are different from one company to another. When I got promoted, I have tried to find a precise definition of my new role. And I failed. I will try to describe the most common things, you will do as an engineering manager.
You have the team
The engineering manager has a team of up to 10 people. Ideally less. Depending on the team topology in the company, your whole team is usually working on the same project.
Your team is here to stay. Even if the project change, team members won't leave the team, because you have established a trusting relationship already. That is crucial for your ability to help your team members.
The main driver of a successful engineering manager is establishing trust with its team members. It's easier said than done. Trust is not assumed, it has to be earned, and it takes time and skill to do it.
As a promoted engineering manager, you have a much easier job, as you worked with the team for quite some time. Take that as an advantage. Communicate openly and make sure to show by example that nothing is strange now with you in a different role.
Therefore, your first task is to schedule recurring 1-1 discussions with every team member. The optimal recurrence is once every two weeks.
Don't mix trust with friendship. When approaching 1-1 discussion, it has to be driven on a professional level. Avoid beer-like discussion and leave it for the more appropriate time.
Closest metaphor would be, when you say to your partner "Can we take a sit, we gotta talk?". So, you still love each other, but you're still having a serious conversation.
Having team members not improve their skills is a failure of an engineering manager. You should set the goals together with every team member. Support them in achieving those goals, by providing resources and connections with other experts inside or outside the company.
Your output, as an engineering manager, is just partially your personal achievement. What is measured is the output of your team actually. If the team is not performing well, it's a clear sign that something is off with your approach.
Performance reviews are done at least twice a year. In some companies every quarter. If you don't have them yet, start planning.
Supporting software development
Since most engineering managers have great software development knowledge, it's natural for them to get themselves involved in the technical decisions or at least discussions.
If possible, don't, as there are other team members in your team that have the accountability of making a technical decision.
Some high-level technical decisions are ok to be part of. I like to help the team with better version control, release cycles, deployment strategies, etc.
You as an engineering manager will constantly communicate with the product manager as well as with the manager you report to. Often communication provides a better perspective over business needs. What comes from that is the understanding of how a team effort can help those business needs.
Apart from the technical part of the process, applying software development methodology like Scrum requires additional involvement as well. Being in contact with the product manager to plan the next features is out of greatest importance.
An important role of the engineering manager is to help with talent recruitment and hiring new team members. Therefore you will have to have open communication with your recruiter all the time. Checking new candidates and helping with the selection process every day. This will help in the better shortlisting process and optimal interviews.
You will have to organize interviews, and set general rules on how one interview should look like. Make sure to repeat constantly what to communicate to candidates and how to present company benefits in an easily understandable way.
After the interview, there is an onboarding stage. If it doesn't exist, it's up to you to define one. If it exists already, you have to make sure that the onboarding is improved with every new candidate. It is a never-ending process.
The most uncomfortable part of this role is when you have to fire someone from the team. It's impossible to be good at it if you're just starting as an engineering manager.
Take all of the help you're offered with. Value every piece of advice.
What engineering manager is not?
Usually, engineering managers do not code. Not many software developers are ready to make a full transition into management in a single day. That's why I suggest having the coding option open for really small tasks.
Set the goals for engineering managers, so that they don't fall back to the safe heaven of coding by default. Coding should not slow down education and the advancement of a manager.
The engineering manager is not a psychiatrist. If you are not an educated one, and chances are you aren't, don't try to be one. We might face team members in a difficult period of life. The best thing to do is to listen and be there for them.
Where to start
Start reading. Here are a couple of books (in order) that helped me to start my thought process on engineering management.
Check for blogs of other engineering managers. One of my favorites is Gergely Orosz.
There is a whole community of people helping each other in these roles. You wont have to search for them, because this community is just exceptional.
I am currently in the position of Director of Engineering and will be writing about engineering management challenges. If you liked this post, hit the subscribe option below and get more content in the future, based on personal experience.