Out of all the roles in tech, there are two roles that have very different responsibilities yet often get blurred together.
I have been both an engineering manager and a tech lead in my career and it is important that you understand the difference between the two.
If your company doesn't have separate roles for these positions, we will also cover what that means if you plan on being an engineering manager.
As the title suggests the role of the engineering manager is to manage the engineering team. This means that the majority of your time is going to be spent on people-focused activities.
If you don't like meetings then you are in for a shock as the majority of what you will be doing requires a meeting. Out of a 40-hour week as an engineering manager, I would typically spend at least 30 of those either on a call or in a meeting room with someone.
People responsibilities for engineering managers include:
- 1:1 (one-to-one) 🗣️ - It is important to block out some time to sit down with each person on the team to see how they are coping as well as cover any topics regarding their work. If you have 8 on your team and you hold a meeting once every 2 weeks, then that is around 4 hours a week on 1:1s.
- Hiring 💼 - Teams grow, and people leave and need to be replaced. As a manager, it is your job to keep an eye on headcount as well as future projects that may require more staff. You will often need to lead every interview for candidates as well as facilitate their onboarding.
- Career Planning 🗺️ - Everyone has their own ideal career path and it is important to know for each person on the team what their aspirations are. This includes helping them with what they need to achieve a promotion as well as making sure they are meeting their goals. Unfortunately, if they aren't performing this also includes firing them as well.
- Protecting the Team 🛡️ - Whether the business is unhappy with the team not meeting their deadlines or there are other external pressures, the engineering manager's job is to protect the team from this so they can focus on their work.
- Communications 💬 - When the business wants to communicate a sensitive subject to the staff they will often do this through the managers. It is the same going the other way too. If an employee has any special circumstances that need to be discussed for approval this also goes through the manager.
It is important that engineering managers have a technical background as they will often be required to participate in technical discussions as well as understand what the team is working on.
Even though most engineering managers started off as engineers it is unlikely they will spend much time coding once they become a manager. This can vary from company to company though.
There was an uproar at the end of last year when Elon Musk said that engineering managers should spend at least 20% of their time coding as well as managing teams of 20!
The more people that you are responsible for the less likely it is that you will have time to do any coding. Although this might not seem like much of an issue to start with it becomes more apparent when you go to change jobs.
The amount of coding that companies expect engineering managers to do will vary. Even though you might have the right people experience for the job you may be lacking in technical experience if you have spent the last few years as a manager.
This is why it is critical to try and stay up to date with new technologies and best practices even if you are not actively coding anymore.
Not all companies have technical lead as a title but there should be someone on the team that is considered the lead.
The tech lead's role is to take care of all the technical aspects of the team. As a tech lead, you would be expected to take care of the following:
- Code quality and technical excellence - it is your job to make sure that everyone is coding to the same high standards. This might include having final approval on code merges to master or setting up code quality pipelines.
- Technical Alignment - it is beneficial for companies to use the same tech stack throughout the company. Especially when it comes to paid tooling. If the company is spending too much money on DataDog then there may be an initiative to move to self-hosted solutions. It will be the tech lead's responsibility to make sure that the team does their bit.
- Technical Spikes - Some features need technologies that haven't been used yet. Before the team is comfortable estimating it, a spike is done to ensure that it is actually possible. This will usually be done by the technical lead, although it can be done by other members of the team.
- Capacity Planning - We are all human and from time to time we need a break or we get sick. One of the duties of the technical lead is to work out how much capacity the team has in the coming sprint. If you are using the scrum approach you should have a good idea of your team's velocity and how much it needs to be adjusted if someone is out for the week.
Tech leads also usually give presentations on technical topics and system designs. They will also work with the engineering manager on the technical roadmap for the product.
Tech leads spend considerably more of their time coding than engineering managers. It is typical for a tech lead to take on one of the more daunting long-term projects on the backlog as well as those that require more technical expertise to accomplish.
When they are not coding the other tasks are usually still technical compared to engineering managers.
If you are doing most of the above then chances are you are a tech lead even if your title doesn't say so.
With the absence of an official tech lead title, it can easy for this role to be missed. Many companies will assume that all the work of the tech lead should be done by the engineering manager.
At small companies, this might work but as companies get larger, engineering managers in this position end up spinning too many plates.
If you are doing everything that is expected of an engineering manager and a tech lead with a large team, chances are that you are doing a few things badly or you are working very long hours.
This happens a lot in companies that either have relatively high turnover or have recently been on a hiring spree. Many companies that hired massively during COVID ended up with an imbalance of experienced to inexperienced people.
If you are leading a team which consists of mostly new joiners, they may not have gained enough domain experience to be able to put their technical knowledge to good use. Even a staff or principal engineer needs time to get familiar with a company's unique problem space before they can be effective.
My advice, if you find yourself in this hybrid engineering manager and tech lead position, is to try and delegate some of these tech lead duties to the most senior engineers on your team.
It provides good experience for them and will hopefully lighten the load enough for you, so you don't feel like you are drowning in work.
As seems to be the case with Twitter, some companies have unrealistic expectations of what an engineering manager can achieve in a day.
Don't worry, I am sure they will book another meeting with you to discuss it!
📝 Article - Google Photorealistic 3D Tiles & Unreal Engine. This developer has used the new Google Photorealistic tiles and combined them with Unreal Engine 5 and ChatGPT to create an amazing flying sim. The textures aren't great up close but it shows the possibilities. I have always wanted a car game that was based on a 1:1 scale of the world so you could go anywhere. Maybe one day.
📝 Article - Tech Companies Keep Falling for the Forever Fallacy. I think most of us realised during COVID that things would go back to normal at some point. Whether due to a vaccine or due to a less fatal mutation of the virus. Tech companies didn't seem to get the message and used the unusual growth to increase their expenses.
We can all be guilty of the forever fallacy though. How many times have you received a pay increase only to find that your spending has increased as a result? Don't expect anything to last forever and save accordingly.
🎉 Small celebration for me this week. My YouTube channel finally got monetised!
For those not aware of the requirements you need 1,000 subscribers and 4,000 watch hours to be able to join the YouTube Partner Program and be able to monetise your videos.
It took me 5 months to get 1,000 subscribers but nearly 8 months to get 4,000 watch hours. It is still mind-boggling that people have collectively watched my videos for the equivalent of 166 days straight.
My videos are currently earning me around $3.00 a day on average. That will pay for my caffeine addiction and hopefully is just the start.
🎬 YouTube - Should you be blogging as a software developer? (and how much I earn from mine). I enjoy writing which is one of the reasons that I have a blog as well as this newsletter. There are several benefits to blogging which I cover in this video. I also tell you how much I earn from my blog. (Spoiler: It's not much!)
If I say I'm happy, that means I was sad at some point.
This is something that a lot of people forget. You can't be happy all the time and without the sad parts in life, the happiness would be meaningless.
My weekly newsletter is written for engineers like you, providing you with the tools you need to excel in your career. Join here for free →