Check out my original post on Staff Software Engineer Responsibilities!
As a Staff Software Engineer, one of your hardest challenges is to influence without authority. If your position doesn’t hold authority by default, then your best bet is to align with it.
This topic was inspired by an insightful quote from Will Larson’s Staff Engineer: Leadership beyond the management track.
Stayed aligned with authority to remain an effective leader over time. Technical leadership roles rely on proxied authority from another (usually, managerial) leader, and continued access to that authority depends on staying aligned, trustworthy, and predictable.Will Larson
Alignment is essential. As a Staff Engineer, internalized alignment re-orients your approach when persuading people to follow your ideas. This will manifest in subtle—but significant—differences.
I’m proposing we do a large migration. I’ve seen this architecture play out before and it’s better we do this sooner rather than later.
I’m proposing we do a large migration. This will benefit the team by making their local development significantly easier and should increase our group’s velocity in the long-term.
In this post, I’ll share a few ideas on how to achieve the two core components behind Will’s idea: staying aligned and building trust.
Staff Software Engineer Responsibilities – Align With Authority
#1 — Staying Aligned
Figure Out Who To Align With
First, decide on who you’re going to align with. This is an individual, usually a manager or a director. Choose someone you respect and would enjoy working with. Factor in your interests, technical strengths, and where you believe you can make the most impact.
Aligning to a specific person means aligning to a specific scope.
- Align to an Engineering Manager
- A large team of Individual Contributors needs technical leadership.
- Align to multiple distinct Engineering Managers
- Same as above, but for two (maybe three) distinct teams.
- Align to an Engineering Director
- A group of teams belonging to a specific domain needs technical leadership.
These ideas break down at higher levels. If you’re aligning to a VP of Engineering, you’re most likely a Principal+/CTO and are overseeing an entire department. You’re probably focused on training other Staff Engineers to align with their respective managers and directors.
Who you align with determines your home base. Aiming for the largest scope isn’t necessary the right move.
Floating is when your job description sounds something like, “Find the biggest technical risks at the company and mitigate them.”
Floating is a risk because it does not foster alignment with anyone. You’ll have difficulty truly understanding the problems that affect teams. Staff Software Engineers in these situations struggle to obtain technical influence and usually do not have a say in what work actually gets done.
You will also be personally frustrated.
The Manager’s Perspective
After identifying a managerial partner, you’ll need to gain their perspective on how their team(s) are doing. Get a bird’s-eye view of the situation.
- Which teams are doing well? Which ones not so much?
- What kind of engineering personalities are on the teams? Which senior engineers need to be pushed?
- Can you point me in the direction of the biggest technical risks?
Gaining this perspective is not just an onboarding task, but an ongoing activity that a Staff Software Engineer invests in.
Get On the Ground
You can’t stay high-level for too long. In addition to the understanding the manager’s perspective, you need to get on the ground to see how things are doing.
- What kind of goals and key results has the product manager set up?
- What are the day-to-day pain points with this group’s software development?
- What kind of engineering processes are unique to the team?
An effective way to do this is to temporarily embed in a team. However, being on a team as a Staff Engineer is not the same as being on a team as an Individual Contributor. Set clear expectations with a working agreement.
Write A Working Agreement
Establish a working agreement with the manager you’ve partnered with.
- What are your responsibilities and how exactly will you work?
- If you do “embed” on a specific engineering team, what does that dynamic look like?
- How should engineers interact with you? What value are you expected to bring?
This working agreement is the physical manifestation of your alignment.
The end goal of alignment is for a Staff Engineer to be able to represent the group with one voice. You speak and make decisions with the group’s best interests in mind. When you attend the exclusive Staff-only architecture forum, you communicate as if your managerial counterpart and all their teams are there alongside you.
#2 — Trust
… continued access to that authority depends on staying aligned, trustworthy, and predictable.
Trust takes time to develop and continuous accountability to maintain. Trust can also be broken quickly and is sometimes impossible to repair if damaged. It is foundational to all relationships.
As a Staff Software Engineer, there must be trust between you and your managerial counterpart.
Even without an established reporting relationship, meet regularly 1-on-1.
Regular Feedback to the Manager
As you spend time on the ground, share relevant feedback with the manager. Are the team’s technical processes sustainable for future IC growth? How is the Tech Lead doing? What investments or debt repayments are most valuable?
Avoid feedback that is rooted in personal preferences. Build trust by sharing feedback that keeps the team’s best interest in mind.
Develop Relationships Within Your Scope
As a Staff Software Engineer, establish yourself as a team member. You are not a contract engineer for hire.
Develop relationships inside the team(s) within your scope. Help a Tech Lead organize their technical debt. Engage in code reviews to elevate ICs. Work closely with a senior engineer to help him or her move into a Staff role.
As a manager, observing that team members are leaning into their relationships with the resident Staff Engineer is a wonderful sight to see. Trust with the team creates trust with the manager.
In many situations, you are not directly reporting into your authority counterpart. Perhaps you report to a VP of Engineering and you’ve decided to align with a specific Engineering Director. Regardless of the org chart, allow the Engineering Director to assign you work. Even if he or she is a peer on paper, operate as if you’re in service to them. Let them set deadlines for you. Meet them.
To reiterate, the purpose of this strategy is to build trust with an authority figure. This provides you with “proxied authority”, enabling you to have technical influence, which is the definition of your role.
Example of Misalignment
You are a tenured Staff Engineer. You have deep historical knowledge and are one of three people at the company who can articulate how the full tech stack works. You have strong opinions on the system and know in your heart which areas need the most attention.
As the team becomes successful, the company hires a new Engineering Manager to facilitate growth. The manager proposes investments that are at odds with what you think is best. The manager wants to prioritize local developer workflow improvements while you strongly believe the team needs to finish a data migration. You become defensive and do not put your full alignment or energy into the manager’s new initiatives.
This turns into a tricky situation for you two to reconcile.
Staff Software Engineer is a challenging position. Without aligning to an authority figure, many Staff Engineers find themselves frustrated with a pile of innovative ideas that sit in a Google document. If this sounds familiar, I encourage you to give this strategy a try.
Thank you again to Will Larson for his original idea. Please check out his work!