This is my take on what makes a good tech lead.
I’ve been a tech lead at Bulb for a little while now, and this is what I think is important:
Leader
A good tech lead leads the team in the right direction and gets things done.
They never forget the mission of the team and the company and keep the team focus.
This means a good tech lead understands the team mission.
I’m the tech lead of the Solar team at Bulb. We want to give our members the best products so they can understand the energy they generate, export and how they can make the most of it.
I understand and I love our mission. It’s not just about the technical aspects of the products, it’s also about understanding the strategy.
Second, a good tech lead can spot when the team gets carried away from the team mission.
As an engineer it’s easy to get carried away and work on technical problems that might be interesting but whose business value is limited. It’s also very easy to over (or wrong) engineer something. The tech lead more than anyone else must be able to spot this.
I ask myself every day whether what we do is the right thing: are we developing the right feature? are we strategic enough? what are we missing?
Finally, a good tech lead ensures the products adhere to the company standards.
The tech team should have good practice and be aware of tech debt.
We’ve grown massively at Bulb, almost doubling in size in a year (from about 850,000 members in January 2019 to 1,600,000 last week). With such a hyper-growth, you can’t avoid accumulating tech debt. But it’s my responsibility to make sure we accumulate the right amount: too much means we’re taking too many shortcuts. Too little means we’re over-engineering.
Emotionally Intelligent
To be a good leader, the tech lead must understand its team, i.e. the humans that make it.
First, the tech lead must understand what people like/don’t like doing and what their strengths and weaknesses are.
When my team and I refine and split the work, I try to make sure everyone is happy with their part: are we gonna have fun? are we gonna learn? are we being challenged?
We don’t always have fun, but if it’s not the case, I make sure we balance it with the next piece of work. We don’t want people to get bored and be demotivated.
And if somebody is being challenged more than usual, I also try to support them.
Second, a good tech lead needs to know how their team members are feeling.
We’re human and how we feel impacts our work and therefore our capacity to deliver.
It doesn’t mean the tech lead needs to get personal with everyone. But if somebody in the team, including the tech lead, is having a hard time, it’s important they say so.
Would you give a challenging problem to somebody who is struggling in life? I wouldn’t. The tech lead wants their team to work 100% and knowing what its current 100% is requires them to know everyone’s current state of mind.
I love my team for this. We all have ups and downs but we’re very transparent and supportive of each other.
Engineer
A good tech lead is a good engineer. But it doesn’t mean they know everything.
First, they need to facilitate constructive technical discussions.
When the team takes on a new piece of work, nobody knows how to tackle it. So the tech lead needs to first focus on getting the team to define and understand the problem. Then they can shape the solution.
The way we do this in my team is by having one of us spending some time going deep and thinking about the new problem. Then we get together and discuss the output. I don’t necessarily lead the discussion, but I make sure it’s sensitive and stay on track.
Second, a good tech lead needs to keep up-to-date with the tech world.
Reading, listening to podcasts or just talking to colleagues is critical.
The tech lead really needs to know what’s going on, so they can help design appropriate solutions.
I find it quite hard as inevitably I spent a lot of time managing my team and have less time exploring and going deep into problem solving myself. So the tech lead needs to be good at learning from others and accept they won’t put their hands into everything.
Communication
Last, but definitely not least, a good tech lead is a good communicator.
The tech lead is the technical point of contact of the team to the external world. Anyone with a technical question about the products will come to them. And depending on your company, it can come from anywhere.
I interact on a daily basis with my team (product manager, engineers, operation manager), external companies (sales, technical consultant, support), engineering manager, recruiters.
It’s easy and natural for me to talk to engineers, we speak the same language. It’s harder (and more nerve breaking) to speak with my CTO or CEO.
Second, the tech lead needs to be able to translate tech language to non-technical people. This is especially important with the product manager.
The tech lead is the tech expert, a bit like a tech consultant, to the product manager. If they have an idea, they’ll come to them to understand how feasible (or crazy!) it is. So first, they need to understand what they mean. And second they need to explain in less technical terms what solutions the team can offer.
So, this is what I think makes a great tech lead: a great leader, an emotionally intelligent human, a strong engineer and a great communicator.
It’s a great role, one with many challenges but technically and humanly very rewarding. 👩💻