Do engineering managers code?
Here is an interesting tweet from Elon Musk that is going around the social media last week. I want to share it here because itâ€™s relevant to your question. Before jumping into the topic, let me set some context.
Iâ€™ve got almost 20 years of experience working in the tech industry and this is the role and expectation of an Engineering Manager. Good engineering managers are people managers and leaders for software engineers, are often responsible for technical delivery teams, and they have a strong understanding of technical details combined with competency in adjacent domains such as analytics, product management and design. They are also responsible for the performance management and career development of their direct reports.
So to answer the question of should they know how to code, yes sure. However, when it comes to the question of whether they should still be coding, it really depends.
Here is my experience working at tech companies as an engineering manager.
When I was an engineering manager of a small team of 4-5, my coding time was about 40% - 50%.
When I was an engineering manager of a 12 people team, Iâ€™d only have about 10%-20% time for coding.
When I was looking after multiple engineering teams, Iâ€™d only get to code at work once every 3 months during hackathons.
Now, as a senior engineering manager at a tech company, I do not have time for coding at all.
What kind of decisions should engineering managers make?
Can engineering managers avoid making decisions?
Engineering managers are responsible for making decisions related to the people management and direction of their engineering team. However, depending on the size of the company and complexity of the codebases, the decisions that engineering managers at tech companies make may differ in terms of impact and longevitiy than those that are made by engineering managers at startups.
Some of the decisions that require engineering managers at tech companies to make are:
- decisions about project delivery
- short term roadmap decisions, usually in collaboration with a Product Manager
- resource allocation
- team structure and composition
- technology design
- career growth opportunities for engineers
- processes and rituals for the team
What do engineering managers do?
In my experience, engineering managers have three areas of responsibiltiies:
- Delivering value to customers, and in a SaaS company, this would be building features and maintaining them
- Ensuring the platform health by looking after the underlying services, making good technical deisgn decsions and understanding tradeoffs
- Building a high performance team by keeping engineers engaged and motivated
Can an engineering manager work from home?
An Engineering Manager can definitely work from home and many tech companies like Google, Microsoft and Facebook have been allowing engineering managers to work from home since the Covid-19. However, as a manager of enigneering managers who've been working from home and working remotely for the past two years, I have to say it's important to meet up with your team members in person reguarly, at least every 6 months. While work can be done remotely through video conferencing and async communication that are available for knowledge workers, nothing can replace personal connection that you can build by hanging out with people in person. Social captial is still important in getting things done effectively.
I have a free Remote Manager Checklist that you may download.
How to become an engineering manager?
How to be a good engineering manager?
What qualitifcations must an engineering manager have?
Being an engineerings manager from being a software engineer is a career transition. Note that I use the word â€œtransitionâ€ quite intentionally here. The path to engineering management is not as simple as you may have hoped. In fact, itâ€™s not even a career progression, hence the usage of the word â€œtransition.â€
Some tech companies put senior engineers on the same level as their engineering managers for this very reason. Engineering management is a linear and alternate career track to software engineering.
Good engineering managers are people managers and leaders for software engineers, are often responsible for technical delivery teams, and they have a strong understanding of technical details combined with competency in adjacent domains such as analytics, product management and design.
While different companies may have different policies and requirements, here is my recommendation in terms of pre-requisite for an engineering manager role:
- At least 5 years as an individual contributor
- Have worked in a senior software engineer capacity for at least 2 years (note, this is not about job title, but more about the size and complexity of technical projects youâ€™ve led)
The years of experiences will ensure that you are able to navigate unknowns, have a solid understanding of technical details and have credibility in order to become an effective engineering manager.
Read my article on 10 important skills that engineering managers at tech companies need to self-assess your skills to become an engineering manager.
Why do engineers become managers?
Why choose engineering management?
There are 3 main reasons why engineers become managers.
First reason is about climbing the corporate ladder.
While there is no set number of years, generally, 5 - 7 years in a software engineer role is what most engineering managers have before they take on the management path.
Somehow, in our heads, we have this illusion that once youâ€™ve mastered the technical skills required for your roles and you have been senior engineers for a few years, the next step for you is to become an engineering manager.
Being promoted to be an engineering manager is actually not a step up, nor a promotion. Itâ€™s a lateral, separate track.
However, it's possible that some engineers become managers because they still view management as a level up in their career.
The second reason is about gaining new skills.
As mentioned, engineering management is a separate career track from software enigneering. There are many competencies that engineering managers need to have which are not essential for engineers. As a result, by becoming an engineering manager, a software engineer will be learning new and different skills that they have not learned before, such as managing complex projects, doing performance managmeent, planning the direction of their team, just to name a few.
The third reason is about trying different things when given an opportunity.
There are many times when a company faces growth, espeically startups and large tech companies, and engineers are given an opportunity to try out management path or in some cases, put into management roles without a choice due to the growth of an engineering department.
In large tech companies, there are often specific programs and trainings to allow for engineers to move to the management path. Some engineers take up this oppportunity and become an engineering manager.
Is being an engineering manager worth it?
There are three correct and common answers to the question, "Is being an engineering manager worth it?" They are Yes, No and Maybe.
This is because the answer is highly subjective and depends on a person's specific circumstances, personality, and career goals.
Often, you may read or hear that being an engineering manager allows one to have a positive impact on the career development of engineers and help them in their professional lives. Some may find this rewarding. Others may not be too concerned about it. Then, as an engineering manager, one needs to be more involved and will have a say in how things get done, from process and planning to overseeing technical delivery. Some may enjoy this part of the role, while others may find it unexciting. Then, there will be conflict management, performance management, project management, stakeholder management, vendor management, etc., which require different competencies and skills than programming, and some may find that interesting while others may find it exhuasting. Lastly, some may work for companies that compensate engineering manager roles higher than software engineer roles, and these individuals may appreciate extra income in their lives more than others.
Do engineering managers struggle to find new jobs after they become managers? Is it a good career path given the tech layoffs?
When I was a developer, I could get a new job offer in a week. There was no shortage of jobs because software developers were in demand (still true today).
So the thought of not being able to find jobs as easily did come across my mind when I transitioned to a management role. Because theoretically, the manager to developer ratio is 1:5â€“10.
While microeconomic conditions are beyond your control, to make sure you donâ€™t struggle to find new jobs, what you can do is to stay highly employable. My advice is to:
- Be helpful, be visible and be authentic online
- Stay active on LinkedIn and other social networks
- Stay up-to-date with the latest trends in the industry
- Continuously improve your leadership craft
How to interview an engineering manager?
Here are 10 types of questions that are often asked at Engineering Manager Interviews at tech companies.
Helping a low performer on the team
Providing constructive feedback to team members
Learning something new on the job
Making mistakes and learning from failure
Dealing with conflicting opinions on a solution
Meeting deadlines and company goals
Why they become a manager
A process-related question
Reasons for looking for a new role
Why they are interested in the job
How to prepare for interviews as an engineering manager?
Big tech companies like Google, Facebook and Microsoft value technical expertise in Engineering Managers. This is not to say they donâ€™t value leadership skills. They do.
In order to understand the requirements and prepare for it, find out about the interview process at the company. The interview process exists to ensure the right candidates are coming through the pipeline.
A typical interview process for engineering managers at tech companies consists of 4 - 6 different stages:
- Screening Interview
- Leadership Skill Interview
- Technical Skill Interview
- Live Presentation Interview (This could be on project management or architectural decision making or operational excellence, whereby you will talk through your knowledge and experience with an interviewer(s))
- Hiring Manager Interview
- Cultural Interview
Cultural Interview (some large tech companies have a separate non-technical interview to make sure cultural fit and alignment of the candidate to those of the companyâ€™s culture)
Apart from preparing for technical competencies by honing in on your fundamental software engineering skills, there are other preparations that you can do.
Firstly, understand the interview process at that company. At each stage of the interview process, the interviewer(s) is looking for different competencies. For example, the technical interviewer may be looking for your understanding of tech stack and architecture, whereas cultural interviewers are looking for how youâ€™ll fit in and what is the value-add youâ€™ll bring to the company.
Secondly, study the companyâ€™s website, especially their Careers section and blog. This is to equip you with their best practices, ways of working, and cultural preferences so you can align your answers in that direction during interviews.
Last but not least, practice practice practice. Look at commonly asked questions on Glassdoor for those companies and practice your answers beforehand so that you can perform with confidence and competence at the actual interviews.
Extra tip: If your interview is virtual aka remote, test the technology in advance and record yourself speaking to make sure you present yourself well and everything is working.