How to go from Senior to Lead

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

Work with your manager

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 :)

But wait, what's a lead engineer?

My manager recently shared a handy dandy 1-word mapping that helps you identify engineers at different levels.

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.

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.

Lead engineer things you can do without the title

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.

  1. Go to all sprint demos. Especially teams that your work touches
  2. Set up 1-on-1s with other teams. This builds informal comms networks that are the true way things get done
  3. Set up 1-on-1s with your product manager. Give technical feedback and ideas on projects long before they reach the team
  4. Notice friction points in the code and go fix them
  5. Ask about the business outcomes of your work
  6. Suggest ideas that drive business results
  7. Push back on ideas that don't drive business outcomes
  8. Ask to be included in strategic meetings and actively participate
  9. Ask about company plans and goals for the next 3 months, 6months, 1 year
  10. Use that knowledge to prioritize your own work
  11. 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
  12. Bushwhack for your team – venture ahead of the work and come back with a map
  13. Run around making small quality of life improvements. 5 minutes of work can have huge compounding returns
  14. Write SOPs – standard operating procedures
  15. Help. When a coworker gets stuck, be the first to jump
  16. Build relationships with stakeholders. Ask how your software helps their work. Ask what bugs them. Bring this back to your product person
  17. Look for process friction and suggest improvements
  18. Make sure your manager notices this work
  19. Brag for your team. When the team does something cool, tell others
  20. Notice other people's achievements. If someone did something you liked, tell them. Even if not on your team
  21. 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.

Cheers,
~Swizec

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