I have a mentee who was recently reading some job postings. He wrote to ask me about postings for tech lead roles:
What does it mean to be a technical lead? Is it a behavior/trait or something that has to come from experience?
There are some definitions out there already, but I think there’s a little bit of both behavior and experience required. I don’t think a lead requires experience in the particular product or technologies being used, but I think a technical lead should enough experience to look at technical choices facing a team, and advise them based on past experiences.
Saying it a different way, I think a tech lead needs to have some deep knowledge of specific technologies, and some industry experience in making technical decisions. I think there’s a character component, too, especially when it comes to interacting with customers, being trusted with very high-impact decisions that affect the business, and being a good colleague (e.g. mentoring, calling out when something isn’t working, proposing changes to improve workflow, taking initiate generally, etc).
If you're a senior engineer, you have a responsibility to your team; not just getting to code on whatever you want/changing architecture.
— Suz Hinton (@noopkat) April 8, 2017
Interviewing for a tech lead role
When I’m interviewing a tech lead position, I look for candidates who have a track record of taking failing projects and turning them around. I look for people who can identify a communication problems between stakeholders and fix it. And I want someone who believes in mentoring a team to success on a project. I also expect them to tell me about some specific instances (lots, ideally) where they took a technical deep-dive into a specific problem, and solved it without help. Finally, I’d expect a candidate to show that they can embrace change, have a positive attitude in hard times, and some sort of demonstrable experience leading a team through the daily paces of things like standups, conflict resolution, code reviews, and writing shared documentation.
Almost as an afterthought, I mentioned a dirty little secret — you don’t actually have to be a, “technical lead,” to be a technical leader. In my own experience, the worst-kept secret of being a leader is that you can simply step up and, “be a leader,” without being designated as one. Sometimes you have to be in the right place at the right time to find an opportunity.
I find it incredibly freeing to decide you’re going to do the things that you believe will help your team, help your business, or make the world a better place, without waiting to hold the right title or a starter pistol to go off. I think there’s more than a little self-sabotage in accepting the fact that we can’t propose a major change in a project, can’t make a difference by teaching colleagues what we know, or — put simply — accepting that we can’t act to improve any situation.
One skill that I think goes unrecognized in true technical leaders — something important that they probably do without thinking about it, in many different technical contexts — is that they’re always analyzing their audience to be more effective. They might ask, “What do you do at company X?” and even ask follow up questions like “Do you handle X, Y, or Z?” where those might be more technical things, to figure out how technical the listener is, so they can communicate more effectively. Good leaders — technical or otherwise — can have a rewarding conversation with anyone in the room. This is especially important in an interview — because even a great answer won’t come across well if you’re talking to the wrong audience for it. You want the person to leave feeling like the interview was a simple, enjoyable conversation.
An effective Tech Lead finds ways for non-technical people to understand technical concepts, and the best way to do that is to find the terms that business people use and find ways to explain tasks in those terms. Use visual models, whiteboard sessions and metaphors to help business people understand technical concepts and their implications. You might rehearse on friends or relatives who don’t work in technology to see if you can succinctly explain an idea. – Patrick Kua
When thinking about communication with colleagues, I think being a servant leader is a great model. This can be as simple as asking them, “What’s the biggest problem you’re facing today that you aren’t currently addressing?” Whatever that is, go attempt address it, and come back to the group, seeking to understand if you’ve improved the situation — “Does this code change help?” or “I’ve manually scripted this so it isn’t your primary pain point. Is that useful?” Checkout this list of actions by David Byttow for more things a technical leader could do, if you’re looking for ideas.
Leadership isn’t about having people under you; it’s about carrying people with you, to build something better than you could ever build on your own. Even without a team, you can still help people in your organization solve problems. If you’re leaving every situation better than you found it, you’re halfway to being a leader already.