This post lists the key insights from this article, from Jean Hsu, Co-founder of Co-leadership, previously engineering leader at Medium, Pulse News, Google.
Design how you want to work together.
If you feel unsure about how to be a tech lead with someone more experienced than you, and you don’t acknowledge it, your discomfort will show up in unhelpful ways.
To begin this design conversation, you’ll want to acknowledge the dynamic. This can be as simple as saying:
“Hey, I wanted to have a quick conversation with you about working together. I noticed that I feel unsure about how best to work with you as I tech lead this project, since you have a lot more experience. What’s important to you in working together?”
Breaking the ice with this acknowledgment may seem small, but it’s a critical step.
Once the ice is broken, the conversation may flow naturally to what’s important to each of you.
Design how you can help them
“What are some ways I can best support you as we work together?”
That might be:
- Taking care of high-level project coordination so that they can focus on execution.
- Coordinating with and being in meetings with product and design.
- Being a sounding board when they get stuck, even if you don’t have full context on what they’re working on.
- Helping them find opportunities to grow in the ways they want — technical depth or breadth, mentoring, etc.
- Advocating for and sharing the impact of their work broadly across other teams and in status updates.
- Sharing context from product, design, and other teams (without them having to be in all the meetings).
Design how they can help you
“I’m really excited to work with you because of [reason] and I’d love your help with [something you’d like help with].”
What’s important to you in working with this individual? What would you love to learn or gain from working with them? That might be any of the following:
- Having a trusted technical advisor that helps set the team up for success — amount of technical debt to take on, trading off short-term vs long-term impact, what to improve in the existing state of the codebase, etc.
- Sharing the load of code reviews so that the rest of the team stays unblocked.
- Having a strong and reliable engineer you can trust to deliver on substantial features or changes.
Sharing this explicitly with them also makes them feel valued and seen — you’re showing them that you appreciate the experience they bring to the team.
Design delegation and ownership
“What are some areas or skills you’d like to take on and own?”
With a more senior engineer, you can delegate things that might otherwise fall to you as the tech lead. Continue to have conversations around what you each want. Perhaps there is some area of the codebase they want to dive deep on.
The other part of delegating is getting comfortable with letting go of control. Figure out what is important for you to know and understand (perhaps the high-level strategy or why one design is better than the other), and let them handle the rest.
By effectively leveraging their experience, you can free your time to focus on other parts of your tech lead role.
“I know you may have other priorities as well. What does your availability to work on this project look like?”
Generally, more senior engineers, especially if they’ve been at a company for a few years, have a lot of demands on their time. If they are often pulled into production issues, maintaining a very active legacy codebase, or wrapping up another project, their availability might be limited.
If you feel unsure about their availability or what percentage of their time they can dedicate to the team, figure out together how you’ll communicate availability. Maybe that’s a weekly check-in where they share what else is on their plate, and how much they can take on.