Fellow reader Faith asks how do you go from senior engineer to lead engineer. Every company is different, here's what I've seen work in the past.
How do you go from Senior Engineer to Team/Tech Lead. All of us are senior engineers in the team, some are better than me in technical perspective. But I know apart from technical skills, my skills are great in soft and people skills. How do I navigate this situation? ~Faith
Step 1 is always to tell your manager you want a promotion. Faith has done that. As part of that conversation the manager will say what they expect to see from a lead engineer.
The best managers will lay out a growth plan for you and step into a coaching role. Start using a portion of your regular 1-on-1 meetings as coaching sessions on your growth plan. Ask for feedback and share what you've tried. Review cycles are too slow for this.
Your manager is in the best position to give you specific actionable advice. They see how you work, notice friction points with the team, and can feed you anonymous backchannel observations from the broader company.
People won't say "Hey that's an asshole move" or "Wow you can barely code" to your face. But they will grumble about you to their peers. Eventually your manager will hear and they can tell you about it :)
My manager recently shared a handy dandy 1-word mapping that helps you identify engineers at different levels.
- SE1 – teachable
- SE2 – independent
- SE3 – tactical
- SE4 – strategic
You want junior engineers to be teachable and mid-level engineers to complete tasks independently. Senior engineers can own bigger stories, which includes project managing the story. Depending on company culture, owning a story may mean organizing the rest of the team to help you and work together.
Lead engineers think strategically. They help design the roadmap and can own a project that takes many months and multiple stories to build. A lot of the work is helping product managers define intermediate steps towards a vision. A lead engineer can own projects that span multiple teams.
I've talked about some of this in my talk On Becoming a Tech Lead.
Some companies call these staff engineers. Some companies have both lead engineers and staff engineers. ¯\(ツ)/¯
In his book, Staff Engineer, Will Larson argues that a lead engineer is the most common archetype of staff engineer.
At most companies, you have to have been doing lead-level work for a few months before they'll promote you. This is to prevent heart-ache and avoid the peter principle.
Peter Principle: In an organization each person rises to the level of their own incompetence.
Promoting people who have proven they can do the next level job by having done it before solves that problem. I think. Either way, it's how companies promote these days.
Here are a few things you can do without the Lead Engineer title that will help you think strategically and start making contributions at that level. In no particular order and definitely not the full list.
- Go to all sprint demos. Especially teams that your work touches
- Set up 1-on-1s with other teams. This builds informal comms networks that are the true way things get done
- Set up 1-on-1s with your product manager. Give technical feedback and ideas on projects long before they reach the team
- Notice friction points in the code and go fix them
- Ask about the business outcomes of your work
- Suggest ideas that drive business results
- Push back on ideas that don't drive business outcomes
- Ask to be included in strategic meetings and actively participate
- Ask about company plans and goals for the next 3 months, 6months, 1 year
- Use that knowledge to prioritize your own work
- Funnel long-term strategy into your technical decisions. Refactoring a service that's dormant may not be worth the work, but if the team is about to invest heavy time into this area, you may be on to something
- Bushwhack for your team – venture ahead of the work and come back with a map
- Run around making small quality of life improvements. 5 minutes of work can have huge compounding returns
- Write SOPs – standard operating procedures
- Help. When a coworker gets stuck, be the first to jump
- Build relationships with stakeholders. Ask how your software helps their work. Ask what bugs them. Bring this back to your product person
- Look for process friction and suggest improvements
- Make sure your manager notices this work
- Brag for your team. When the team does something cool, tell others
- Notice other people's achievements. If someone did something you liked, tell them. Even if not on your team
- Distill technical meetings into clear action plans. When people have competing ideas, push for clarity
I do most of these but not all. There's room to improve.
PS: the challenge is that as a tech lead you're expected to do all these things on top of your strong individual contributions. It pays to first get really good technically so that part of the job feels quick and easy
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?
Get a free chapter from the Senior Engineer Mindset book and a sample audiobook chapter, followed by a Senior Mindset 101 email course.
You'll get insights to apply at your work right away.
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 ❤️