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.
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:
- tech lead guides the technical vision and execution of a team
- architect holds the technical vision of a particular area
- solver floats around the org and solves gnarly problems
- 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.
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.
- "How do I build this subtask?"
- "How do we tackle this story?"
- "How do 3 related stories in this sprint fit together?"
- "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.
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:
- lead cross-team initiatives,
- clear brush ahead of my team,
- work with other tech leads to set company-wide technical direction,
- and help my product owner slice and dice features so they're easier to work on
The biggest impact I hope to have is making sure we work on the right things.
Exciting quarter ahead!
Get promoted, earn a bigger salary, work for top companies
Getting that senior title is easy. Just stick around. Being a true senior takes a new way of thinking. Do you have it?
Leave your email and get the Senior Mindset crash course - a series of emails on the mindset of a senior software engineer. What it takes to get there, what should you do when you're there, how to change the way you approach problems.
Get an email crash course on the mindset of a senior software engineer. What it takes to get there, what should you do when you're there, how to change the way you approach problems.
it describes my days in a way I have not read before.
This was a very enlightening article about being a senior engineer.
You write in a way that just makes sense. I found just about every idea valuable.
Senior Mindset Book
Get promoted, earn a bigger salary, work for top companiesLearn more
Have a burning question that you think I can answer? Hit me up on twitter and I'll do my best.
Who am I and who do I help? I'm Swizec Teller and I turn coders into engineers with "Raw and honest from the heart!" writing. No bullshit. Real insights into the career and skills of a modern software engineer.
Want to become a true senior engineer? Take ownership, have autonomy, and be a force multiplier on your team. The Senior Engineer Mindset ebook can help 👉 swizec.com/senior-mindset. These are the shifts in mindset that unlocked my career.
Curious about Serverless and the modern backend? Check out Serverless Handbook, for frontend engineers 👉 ServerlessHandbook.dev
Want to Stop copy pasting D3 examples and create data visualizations of your own? Learn how to build scalable dataviz React components your whole team can understand with React for Data Visualization
Did someone amazing share this letter with you? Wonderful! You can sign up for my weekly letters for software engineers on their path to greatness, here: swizec.com/blog
By the way, just in case no one has told you it yet today: I love and appreciate you for who you are ❤️