The Tech Lead has a hard job that requires a willingness to do a bit of everything. Done well it’s a job that can help multiply a team more than a good roadmap or manager can. It’s a lot of fun! Everyone should get to give it a try when they’re ready.

But there’s a problem: While a team can have multiple Senior or Staff engineers, there’s only ever one Tech Lead. If you look at things from an individual career path perspective, it seems fine:

%%{init: {'theme':'base', 'themeVariables': { 'primaryColor': '#90caa7', 'edgeLabelBackground': '#f2eaa3'}}}%% graph LR; A[Entry Level IC]-->B[Mid Level IC] B-->C[Senior IC] C-->X[Tech Lead]; X-->E[Staff Eng];

But in the reality of a team with many engineers, it’s the only role on the team that can’t have multiple people doing it at the same time:

%%{init: {'theme':'base', 'themeVariables': { 'primaryColor': '#90caa7', 'edgeLabelBackground': '#f2eaa3'}}}%% graph LR; A[Entry Level IC]-->B[Mid Level IC] B-->C[Senior IC] C-->X[Tech Lead]; X-->E[Staff Eng]; F[Entry Level IC]-->G[Mid Level IC] G-->H[Senior IC] H-->X[Tech Lead]; X-->I[Staff Eng]; J[Entry Level IC]-->K[Mid Level IC] K-->L[Senior IC] L-->X[Tech Lead]; X-->M[Staff Eng]; N[Entry Level IC]-->O[Mid Level IC] O-->P[Senior IC] P-->X[Tech Lead]; X-->Q[Staff Eng];

(ignoring the chokepoint, in this model would being a Tech Lead be a step back for a Staff+ engineer?)

If Tech Lead is title that someone can have forever, devs who are interested are going to have to change teams or look for a new job where the opportunity is open. But if Tech Lead is a role that an engineer performs on a team for a period of time, all these problems go away.

In my experience, to really get into it, Tech Lead should hold the role for at least 6 months1. After that, if they have a willing replacement and the timing makes sense, change them up. Have a small transition ceremony so that the incoming TL can feel ownership and not obliged to perpetuate the status quo.

Something that is more flexible means your teams can likely better adjust to their ambitions over time.

%%{init: {'theme':'base', 'themeVariables': { 'primaryColor': '#90caa7', 'edgeLabelBackground': '#f2eaa3'}}}%% graph LR; A[Entry Level ICs]-->B[Mid Level ICs]-->C[Senior ICs]; C-.->X[Tech Lead]; X-.->C X-.->E C-->E[Staff ICs]; E-.->X B-.->X

Make Tech Lead a temporary role! it allows more people to practice leadership, which builds better teams. And on a team level, it’ll allow for greater flexibility depending on the needs of the team.

  1. At which point maybe they should get a bonus? It’s different work and should be compensated, but you don’t want to have giving up the role be a pay cut. Also, I’ve never tried this, but have heard of it being a thing, and like the idea. ↩︎