Book Summary: Staff Engineer by Will Larson
The book talks about what it means to be a staff engineer. It is an interesting read for those who would prefer to stay on the engineering as opposed to the management track of career growth.
There are four common archetypes of a Staff Engineer
- Tech Lead – usually leads a single project
- Architect – usually focuses on a single area (and all projects within it)
- Solver – jumps from one hotspot to another
- Right hand – to an executive, providing technical leadership
What to do
- One advantage of writing code in a staff role is that one’s technical strategy is guided by on-the-ground experience.
- Develop precise definitions, for example, for technical code quality. The definition does not have to be rigid and can evolve over time.
- For things like technical code quality, it is best to start with small improvements and iterate slowly. In complex systems with interdependencies, moving quickly results in good optics but it’s the methodical movement that gets the job done.
- Continued growth requires learning to incorporate your worldview into the worldviews of those around you. It accelerates overall progress even if it means tolerating a detour from your original vision.
- A staff engineer should be able to think about various engineering decisions as a series of tradeoffs.
- Do spend time reading good-quality computer science papers.
- Sometimes, it is important to see things without the full historical context.
- To become a senior technical director, you must build a deep perspective on technology and architecture. To operate as such a leader, you must then develop an equally deep pragmatism and agnosticism to technical religion to remain skeptical of yourself.
- The intern cares about a small aspect of the feature that can be built in three months. The full-time engineer cares about the entire lifecycle of the feature. The team lead cares about the suite of features that form a product. The director cares about the suite of products owned by the organization.
What to avoid
- Low-effort low-impact work is like a “snack”. Avoid snacking.
- Low-impact high-visibility work is “preening”. Avoid preening.
- The right reason to go into engineering management is to support other people.
- To grow, you have to escape from where you are best to where you will be average.
- In a staff role, you are accountable to the business and organization first and yourself second.
- Sometimes the current business is too valuable to prioritize a new business direction even if the current growth rate is slowing down. Organizations, in such cases, form new teams with a few trusted individuals to explore a new direction.
- Teaching a company to value something it doesn’t care about is one of the hardest works. It often fails. Do as little of it as you can but no less.
- One problem with not having formal gauges of seniority is that it leads to informal gauges of seniority. They might seem to evaluate an idea objectively but become a broad vector of bias, conflating confidence with competence.
- Two most effective ways to deal with jerks –
- Include their manager in the meeting
- Invest heavily in aligning with them before the meeting so that they feel heard
- Opportunities are never evenly distributed. If a company sees infrastructure engineering as more complex then opportunities will consolidate in infrastructure teams. If the company emphasizes shipping features then it is easier to be rewarded for fixing an outage you cause instead of preventing future outages. Your work will get more visibility in headquarter than in a distributed office.
- To reach senior levels, it is not only important to enter the rooms but to stay in them.
- To be promoted to a leadership role, the most important kind of internal visibility is executive visibility.
- Well-run organizations value you for what you are good at. Less well-run ones will value you for your identity.
- Some companies are meritocratic. Some are proceduralists. Neither is superior. However, it is best to pick one that aligns with one’s personality.
Relationship with your Manager
- Develop a relationship with your manager where they trust you and you implicitly trust them. Building this trust requires delivering on things they ask you to work on.
- Never surprise your manager.
- If you spend six months trying to proactively fix the relationship with your manager and it doesn’t work then it is time to move on to a different team or a company.
- SQCA (Situation, Complication, Question, Answer) is a good format for writing documents.
- Your ability to collaborate with a specific person could be easier if a relationship was built beforehand.
- Understanding something is only half the battle. Expressing it clearly is equally important.
- Mentoring junior is an important part of the staff role.
- Never ignore existential issues. Companies operate in an eternal iterative elimination tournament, balancing future success against current survival. If you see your company is about to lose one of those rounds, then always focus there.
- When sponsoring someone to grow, instead of involving someone in your work, make the work theirs.
- The only way to remain a long-term leader of a genuinely successful company is to continually create space for others to take recognition, reward, and work that got you to where you are.
- If you are being interviewed by junior engineers, you are not being hired for a senior role.
- When switching jobs find the best available opportunity, not the first available opportunity.
- At small companies, you get to do many different things. At larger companies, you can specialize in your passions.