On becoming tech lead

A few weeks ago I made tech lead, a type of staff engineer. Here are my thoughts on what that means, how it happened, and why you'd want such a thing.

Staff engineer is a fairly new position in the industry. I've only started seeing the title in the past 5 to 7 years. The level fills a spot between senior and principal. Books and resources focused on this career path have started appearing in the past 2 to 3 years.

What is a tech lead

Unlike team lead, tech lead is not the first management position. Confusing, I know.

Tech lead is one of 4 staff archetypes in Will Larson's, author of Staff Engineer, classification. That's the best we've got right now.

Will classifies staff engineers as 4 archetypes:

  1. tech lead guides the technical vision and execution of a team
  2. architect holds the technical vision of a particular area
  3. solver floats around the org and solves gnarly problems
  4. right hand extends an executive's attention

Of these archetypes, tech lead is the most common. It's the first need that arises in organisations and scoops up engineers interested in that sort of work.

Architects make sense when your system and org are big enough to warrant a Keeper of The Vision for specific areas. Think engineer responsible for building an in-house React framework, design system, or a complex and impactful piece of business logic.

Solvers, I think, happen early as external consultants and freelancers. They make sense internally once your system is big enough that "Fix gnarly problems that fall in-between teams" becomes a full-time job.

Right hands are rare. You need those when there's hundreds of engineers and leadership loses sight of everything. "Hold down the fort while I go deal with this problem area" type of thing.

Why you'd want to be a tech lead

For me the allure of a tech lead role is that I get to solve bigger technical problems than I could tackle on my own. As Brooks said in The Mythical Man Month 50 years ago – software is bigger than fits 1 brain. No matter how brilliant.

After 25 years of coding, waxing poetic about the perfect way to write a for loop or a UI component, no longer scratches the itch. I crave bigger better challenges and one way to find those is by climbing the ladder of abstraction.

  1. "How do I build this subtask?"
  2. "How do we tackle this story?"
  3. "How do 3 related stories in this sprint fit together?"
  4. "How do our sprints fit together to achieve quarterly goals?

Straight out of the sell your brains, not your hands playbook. Partnering with our product owner to work on 4 is a much better use of my time than playing at level 1.

The company gets infinitely more value from leaning into my judgement and experience than from how much faster I can type valid syntax.

What being a tech lead means

Being a tech lead means less coding time and more meeting time. This can lead to feelings of guilt because you're not doing things. The frustrating part of why senior engineers get nothing done is now your main priority. Congratz!

Interestingly, feelings of guilt are a strong predictor of leadership potential. People naturally want to follow the folks who feel guilt towards problems and work to solve them.

At my company tech lead is an experimental role. Considered a stepping stone towards the Staff Engineer title because it creates opportunities to show staff level work. If the first 3 of us prove that the company needs this and it's useful, it may become an official role or title. No pressure 😅

For now I'm enjoying the extra freedom it affords to:

The biggest impact I hope to have is making sure we work on the right things.

Exciting quarter ahead!

Cheers,
~Swizec