I joined Cruise almost three years ago, and I have been a tech lead in an official fashion for nearly two years now. In that time, I’ve had the pleasure to see the company grow dramatically- both technologically and organizationally.
Currently, my position includes helping groom the next generation of front-line tech leads. Giving targeted feedback and “that personal touch” helps guide individuals in the particular ways they should aim to grow, but I find that there is a fair amount of overlap when it comes to the general advice I have for the new leads. Given that scaling my capacity to influence and aid others is one of the skills I’m personally working to develop, I decided that capturing these thoughts in a written form would be most effective.
About this series
This will be a series of short, targeted articles on being a tech lead, with topics ranging from the technical to the psychological. Some articles will contain concrete advice, while others will be higher level exposition on my personal experiences. I can’t say for certain whether all of the articles will be directly useful to everyone (in fact, I’d say it’s far more likely that most people will only find a subset of the advice worth applying). However, I do think that learning what another person went through will help prepare those who aspire to be or are soon to start working as a tech lead for their team, regardless on whether they will ever be able to directly apply the lessons learned.
What is a tech lead?
The role tech lead has a high degree of variance from company to company, and it can even be different across departments of a single organization. Sometimes the role is a somewhat permanent position amongst a group of developers, while other times it is a title that is associated with being the head of shorter-lived initiatives or projects. Tech leads may have direct reports and act as an official manager for them, or there may be a separate engineering manager who the engineers (including the tech lead) report to. It’s hard to nail down a precise definition which covers all aspects of being a tech lead, but we can find some commonalities which help capture some of the key elements.
- Are responsible for the technical design and execution for a particular system or set of systems.
- Help ensure that code contributions of team members maintain a codebase of sufficient health.
- Are the primary technical representative of a project or team when interfacing with others for technical or organizational discussions.
- Help developers understand their technical work in terms of business impact and goals.
- Help higher level decision makers understand trade-offs and justify the team’s current and long-term direction.
- Find opportunities to mentor and grow their team, as well as find opportunities to magnify their impact.
In this series, I will be discussing the lessons I learned from my personal experiences. I encourage you to be mindful about the differences in how I describe my team structure and those you have in your organization when considering whether or not (or to what degree) you choose to apply certain pieces of advice.
There aren’t a ton of resources targeted at tech leads, compared to those for more traditional leadership and engineering roles. That said, there are still some things that you may find worth looking into, depending on what you’re looking for. I’ll also describe how I’m expecting my posts will differentiate themselves from these materials.
Pat Kua has a couple of works that target the subject matter of tech leads. The one which is most similar to this series is Talking with Tech Leads, which has two kinds of writing. The first, larger portion consists of short interviews with tech leads of varying experience levels (of which there are several dozen), and the other portion is Kua’s summaries of the main themes he discovered when reviewing these interviews. This book does a great job of exposing the reader to the first-hand experience of others, and Kua’s summaries act as a solid set of “the behaviors of successful tech leads”. However, due to the nature of the content, it doesn’t go in depth for any particular category, as each interview ends up starting from the same initial state. I expect my series of posts to concentrate on specific aspects of tech leading than giving a high level overview.
Kua also wrote “The Definition of a Tech Lead”, which captures a high level definition and links out to a separate post highlighting some of the responsibilities of tech leads.
Webflow published a version of their internal Tech Lead Guide on GitHub for all to read. It is a really great example for how a company sets expectations in terms of organizational management (communicating upwards, tracking tasks, estimating time, etc.). However, it is very much targeted as a tutorial on how to handle the more mechanical aspects of tech leading, and doesn’t cover as much of the emotional or psychological aspects of the role which I hope to cover in this series of posts.