Tech leads embody a unique blend of technical expertise and people skills.
They’re the people who make the technology decisions that will shape a company’s future. Not to be confused with engineering managers, who focus primarily on people management, tech leads need to understand the tech stack better than anyone, lead by example and be seen as advocates for their fellow developers.
“It’s really important that your team feels like you’re on their side, or that you have their backs,” said Alek Hurst, a front-end tech lead at CyberGRX, a third-party cyber risk management provider.
It’s really important that your team feels like you’re on their side.”
Hurst said his leadership philosophy is defined by experiences he had early in his career. Naturally cautious, Hurst said he had trouble speaking up as a young developer. Now, he makes sure everyone’s voice is heard by asking every member of his team what they think of potential new technologies or workflows.
Grant Sheehan said he finds meaning in mentorship, too. At Mersive, a visual computing firm where he serves as senior DevOps engineer, Sheehan teaches junior developers not to take shortcuts when writing code.
“You can end up skipping past things that you think are too simple for you to have screwed up, and then you’ll end up wasting a lot of time chasing other, more complicated answers when, in reality, there’s just a typo,” Sheehan said.
For Juliette Abeyta, supporting programmers means being strategic about assigning tasks at FluentStream, a cloud-based communication software provider. She tries to give developers work that plays into their individual strengths and career goals.
When mistakes are made, she tries to get the entire team involved in solving the problem — a tactic she credits for helping drive greater investment in the final product.
“I don’t want it to be a blameless culture,” Abeyta said. “If somebody does make a mistake, then we identify why the mistake was made and we all learn from it together. We all work together to find a solution for it.”
We spoke with Sheehan, Abeyta and Hurst about how they grew into their roles as tech leads. Their advice includes:
Become technically proficient by gaining experience with a variety of tech stacks and ecosystems.
Stay curious about new technologies and constantly look to refine your technical skills.
Invest in your people skills. Learn how to be empathetic and put your team members in a position to succeed, both by giving them tasks that play to their strengths and ones that stretch their skills.
Stay disciplined in writing code, and know there are no shortcuts when building the foundations of a new system.
Understand how to delegate. Identify which team members make the most sense for working on what, and assign them the work that needs to be done.
How did you know you wanted to become a technical lead?
Juliette Abeyta, full-stack developer: If you are technically proficient and you feel comfortable being a resource for people, that’s a good indication that you might be ready. I do hiring, firing and employee discipline, and all of those things involve a lot of people skills. You can teach anybody to code. The harder thing to learn is the soft skills, understanding, ‘What does it mean to be a lead of anything?’
You can teach anybody to code. The harder thing to learn is the soft skills.”
Grant Sheehan, senior DevOps engineer at Mersive: I was working for Amazon, where I found that the loudest voices were most often heard. A lot of the time, those people had good ideas, but I also knew very senior people who just didn’t have the kind of personality where they could stand up in front of 60 of their peers and tell someone else they were wrong. It was at that point I decided I wanted to get a little bit more involved — and do it somewhere else. As a leader, I wanted to create a more open, welcoming environment.
I leverage my knowledge of tech stacks to lead the team technically and, for right now, interpersonally. If you really feel like you can have a positive impact on the decisions your company is making, that’s when you know you need to work toward more of a leadership position.
What makes a lead developer different from a typical developer?
Hurst: When you become a tech lead, you’re no longer working on individual problems. You're trying to establish patterns and best practices and underlying architectures that the rest of the team can build on top of, to create features, fix bugs, and stuff like that. So you're making foundational decisions that are going to ripple out to the rest of the team.
When you become a tech lead, you're no longer working on individual problems.”
Abeyta: I’m mostly writing code, but a lot of the management stuff is just entwined in that. I help plan sprints. A lot of my job is doing code reviews. I also act as a proxy between the business and the developers. So if things do arise that are a little bit more urgent, I reprioritize as needed.
Sheehan: When you say tech leader, what I think of is somebody who’s driving the direction of an organization. Whether or not they’re in a managerial role or an individual contributor, it’s a senior position.
What are the best ways to prepare yourself for becoming a lead developer?
Sheehan: Being disciplined in this type of position is very important. You can’t take a shortcut to writing code and then expect to not have to revisit it when you’re working on the more foundational things.
The workflow that I tend to prefer is all kind of based around Git source control. When people work on changes to the code, they create what’s called a local branch and they create a pull request to say, “Hey, I want to introduce these changes into some part of the product.” The pull request is a way for you to comment on some of the decisions that are made. I feel like when I first started, I did a good job of providing feedback on pull requests. So people started reaching out to me with other technical questions, saying, “Hey, could you help me figure out something?”
You can’t take a shortcut to writing code and then expect to not have to revisit it when you’re working on the more foundational things.”
Hurst: If you want to progress from junior engineer all the way to tech lead, you have to be going out of your way to try the latest technologies and really wrap your mind around all the different ways to write code.
All the big-name developers who are giving speeches and making frameworks — like Dan Abramov and Ryan Florence, both known for their work on React — are on Twitter and sharing stuff every single day. Find people you like in those communities that you follow. If people stick out to you, start engaging with them so that they recognize your face on that platform. You can start reaching out with a question or two, and just start trying to build a relationship with the people you want to be mentored by.
Abeyta: We didn’t have a lead developer before I came, so when I first started, I spent a lot of time identifying who should work on what, and delegating the work that needed to be done. The team saw an increase in productivity after I did that.
The core quality of being a good engineer is being able to solve problems that you’ve never solved before. You need to combine raw problem-solving skills and creativity to leverage the potential of all the tools provided to you. So you have to be up-to-date on the latest frameworks, technologies, testing tools and browsers. It’s really important, especially in the front-end world, to stay up to date.
What soft skills should you invest in if you want to be a lead?
Abeyta: Empathy is a big one. That’s one of the most important parts about being a leader. Understanding that leadership is about guidance, and help, and nurturing, and enforcing a very positive environment in your workplace. If there are things you need to be the bad guy on, obviously you have to be able to do that. But, for the most part, I’ve found that people really respond to empathy and understanding.
Hurst: Early on, I would just assume that everybody else was smarter than me. If you want to be a leader, you need to speak up and be willing to share your opinions. And when your opinions are wrong, or if somebody else comes in with another opinion, you need to be able to listen to that.
I have a ton of one-on-ones with my team, and make sure that I don't miss small-group time with them. Like every time we go out to Denver, we go to dinners, do team building exercises — stuff like that. I just really try to understand where they are at with their careers, where they want to go, and how can I help them get there.
Keep an open mind, hold on to your opinions as loosely as possible, and be willing to take constructive criticism.”
Sheehan: Keep an open mind, hold on to your opinions as loosely as possible, and be willing to take constructive criticism. But also understand that you have to be able to give constructive criticism and not just say, ‘This is all wrong, come back when you have this fixed.’ Be a nice person. You can’t just be a tyrant.