1 October 2023
Book Review: Staff Path
The role of a ‘staff engineer’ is often vague and undefined.
Tanya Reilly’s book, “The Staff Engineer’s Path: A Guide for Individual Contributors Navigating Growth and Change,” brings clarity to this role and offers insights on how to excel within it.
Primarily, the staff engineer role involves leveraging deep technical knowledge and experience in three key areas: big-picture thinking, execution, and organizational development.
While I’ve shouldered some staff-level responsibilities in the past, I’ve never held the official title. In this brief summary, I’ll share my perspective on how the book resonates with my experiences. Mostly, though, I’m here to absorb and learn!
Reflection Time
What’s good
- Great general advice for new technical leaders
- Acts as a good reference book with lots of practical advice for specific situations
- Provides a rich list of learning resources
- Funny tone
- Good career advice
- That it exists is good! There aren’t many books in this category
What’s bad
- TBD if this’ll be useful information in practice. I have a feeling that these calm reflections of a smart person may be difficult to apply in the real world.
- Each staff role and org is going to be very different, & this is a very general book. There might have been a more specific book I could read that would be more helpful.
- It doesn’t address the advent of AI powered dev tools or AI in the workplace, or the long term outlook of the industry.
- There’s a little bit of content critiquing the so called ‘meritocracy’ of the tech world. Otherwise, there’s not much content on how to navigate DEI issues.
What I’ll Do
- Dig more into technical vision and technical strategy & gauge interest at my new job
- Set a year goal & job description for my role with my manager (if that’s not already common practice)
- Schedule a monthly survey of how I’m feeling about my job
- Refer to the book for:
- setting ‘big picture’ goals
- goal setting & time management advice
- project management advice
- RFC / ADR advice
Summary
Section 1 - Big Picture Thinking
Understanding the organizational context and maintaining a long-term perspective on projects.
1.1 Defining The Role
The initial step in embracing ‘big picture’ thinking involves introspection about the role itself.
Key insights include:
- Select a primary focus.
- Recognize the significance of the title; it signifies a technical leadership role.
- It requires a strong technical foundation.
- Act as a positive influence and role model while setting the technical direction.
- Strive for autonomy while devising plans to achieve your objectives.
- Ensure that your goals align with the organization’s strategic priorities.
- Collaborate with your manager to define your scope.
- Manage your time effectively.
- Be prepared to lead cross-team projects.
- Maintain slack capacity and take the lead during crises.
Archetypes can help in comprehending the role: “tech leads” assist managers; “architects” oversee critical areas; “solvers” tackle complex problems systematically, one at a time; “right hands” provide additional leadership capacity to the organization.
What might be the best option within your team could differ when considered within the broader organizational context. Big picture thinking empowers a staff engineer to optimize not just at a local level but also at the organizational level, with a focus on long-term outcomes.
The chapter also delves into the advantages and disadvantages of reporting higher or lower within the organization structure. It explores the trade-offs between having a ‘too broad’ scope (lack of impact, bottleneck, fatigue) versus a ‘too narrow’ scope (lack of impact, overengineering, overshadowing).
Finally, there’s a practical example of setting annual goals to share with your manager.
I'm already familiar with most of the concepts presented in this section. I'm particularly excited to work on setting my own goals, improving time management, taking the lead on cross-team projects, and gaining a better understanding of the organization's overarching goals.
1.2 “Three Maps”
Where do you fit within the organization? What does the entire organizational landscape look like? And where is your trajectory headed?
Answering these questions can help you address critical inquiries:
- What is the mission, and who are the customers of your teams?
- Where do friction points and gaps exist within the organization?
- Does everyone comprehend their objectives and the reasons behind them?
These maps also serve as a constant reminder of the bigger picture.
Staff engineers too narrowly focused may:
- Make suboptimal prioritization decisions, favoring local optimizations.
- Lose empathy for problems outside their domain.
- Overlook glaring local issues visible to outsiders (e.g., a broken build).
- Forget the ultimate purpose of their work.
The Local Map
One of the most significant contributions you can make is by consistently offering an ‘outsider view’ of the situation.
Measuring success through the lens of your customers is an enduring best practice.
To maintain an external perspective, seek to understand how others in the industry have tackled the same problems. Consider these resources to keep that outside view:
- `Lead Dev Conference
- `Rands Leadership Slack
- `InfoQ Software Architects’ Newsletter
- `Thoughtworks Radar Newsletter
The Org Map
Failing to comprehend the organization can lead to various challenges, including difficulties gaining support for good ideas, unexpected obstacles, and protracted decision-making and execution processes.
Culture can be understood on a spectrum, with variables such as secret or open communication, oral or written decisions, top-down or bottom-up initiatives, fast or deliberate change, back channels or front doors, allocated or available capacity, and liquid or crystallized structure.
The critical point is knowing where decisions are being made. If you are part of those decisions, be well-prepared, articulate concisely, and contribute as a collaborative, low-friction team member.
Staff engineers can function as bridges where organizational gaps exist.
The ‘Treasure’ Map
This aspect is about setting clear goals and ensuring alignment across the teams you work with.
The metaphor might be stretched in this section, but it effectively highlights the various forms of big picture thinking that can aid in selecting and achieving meaningful goals. When setting goals, it's worthwhile to revisit this section and explore the recommended resources.
1.3 Creating The Big Picture
This chapter presents a highly relatable example of the initial steps for addressing technical debt in a monolithic application.
This chapter is about a technical vision and a technical strategy. A clear technical vision serves as your north star. While you may not yet know how to reach this vision, it should be both clear and realistic, addressing the organization’s needs.
Valuable resources for crafting a technical vision include:
- Fundamentals of Software Architecture by Mark Richards and Neal Ford (O’Reilly)
- Chapter 4 of Making Things Happen by Scott Berkun (O’Reilly)
- “How to Set the Technical Direction for Your Team”, by James Hood of Amazon
- “Writing Our 3-Year Technical Vision”, by Daniel Micol of Eventbrite
The technical strategy is the plan of action to achieve the vision. A good strategy is outlined in Good Strategy/Bad Strategy by Richard Rumelt and includes:
- defining the core problem,
- a decision-making policy to address it,
- and a set of actions.
These actions may encompass organizational changes, new processes, project modifications, and the initiation of new projects. Be explicit about the strategy’s scope and anticipate that a boring solution will be the best solution.
- Good Strategy/Bad Strategy by Richard Rumelt (Currency).
- “Technical Strategy Power Chords” by Patrick Shields
- “Getting to Commitment: Tackling Broad Technical Problems in Large Organizations” by Mattie Toia
- “A Survey of Engineering Strategies” by Will Larson
- Technology Strategy Patterns by Eben Hewitt (O’Reilly)
- Rands Leadership Slack, specifically the channels #technical-strategy and #books-good-strategy-bad-strategy
Some key takeaways:
- Check for any existing efforts so you can help or get out of the way.
- The majority of the work is getting people to agree with these documents, and getting an executive sponsor. Without the agreement or sponsor the documents are worthless.
- There’s a checklist to go through before creating the documents, and then a guide for how to create the doucments.
- You have the ability to decide to do nothing (but be sure to document why)
- Have a pithy story about your vision and strategy.
This is my favorite chapter.
I have a feeling this will be immediately relevant to my new role.
If I want to establish a technical vision or strategy then I should refer back to the checklist in this chapter.
I think coming in as a new staff engineer my primary challenge will be ensuring there's buy-in for my ideas at all levels.
Section 2 - Execution
2.1 Finite Time
At the staff-level, you choose your own work. This autonomy places a premium on your time management and decision-making skills. Ultimately, you are in control of:
- Aligning your work with your personal goals.
- Ensuring alignment with your capacity.
- Pursuing opportunities that challenge and enhance your skills.
- Maintaining your personal happiness.
Social capital and peer credibility are valuable currencies in this role, so take care when spending them.
The chapter provides strategies for effective time management, including delegation and the practice of blocking off focused work time on your calendar.
When evaluating opportunities, consider the costs and gains in terms of:
- Energy expenditure.
- Preservation of credibility (avoiding being too detached from practicality).
- Impact on your quality of life.
- Skill development.
- Social capital enhancement.
To be successful you’ll need to be good at defending your time.
Refer back to this chapter if evaluating an opportunity, or having trouble managing time.
2.2 Driving A Big Project
This is clearly where the author shines.
Mostly though it boils down to:
- defining RACI (Responsible, Accountable, Consulted, and Informed)
- setting up clear lines of communication,
- providing regular check-ins,
- setting and driving towards milestones,
- don’t underestimate the value of relationships and trust
- documentation; always write down decisions, keep an Architectural Decision Record (ADR)
- expect the unexpected (direction, quitting, blocking dependency)
- understanding where you can contribute the most. A staff engineer might try to code their way out of a problem. That’ll rarely be the right solution.
I'd also argue here that you should be aware of how your project is being perceived. Even if things are going wrong due to factors out of your control (e.g. mutliple competing high-priority projects); you need to clearly communicate that to your stakeholders.
Refer back to for details on ways to provide clarity in the project with e.g. pictures and graphs. Also refer here for details on what makes a good RFC.
2.3 The Project Isn’t Going Well
Usually a project gets stuck because it’s blocked by something. This section does a deep dive on what to do when blocked by a variety of obstacle. Each obstacle can be solved by one of: “explaining what needs to happen, reducing what other people need to do, clarifying the organizational support, escalating, or making alternative plans.”
- another team
- “there’s almost certainly a great reason why”
- misunderstanding, misadventure, misalignment
- a decision
- “it’s more complicated than you think”
- something ‘easy’ like a button press
- a single person
- unassigned work
- summarize all of the information in one place to “create clarity and reduce chaos.”
- RACI
- collective action (e.g. half finished migration)
- this is where staff role shines
- you have a lot of options
Sometimes though a project isn’t going well because it’s lost its direction, or there isn’t an obvious solution. “Bring clarity to a project that’s adrift by defining your destination, agreeing on roles, and asking for help when you need it.” This section dives into what to do when:
- a large group of people don’t have a clear direction (see chapter 1.3)
- choose a destination: clarify roles, strategy, a problem, and a stakeholder.
- you don’t know how to solve the problem
- another area where the staff role shines
- articulate the way
- revisit assumptions
- seek other perspectives
- the list goes on
- you don’t know where you stand
- first goal is to clarify stakeholder position
- sometimes projects get cancelled :(
A third category: you might be code complete but the problem isn’t solved. “Don’t declare victory unless the project is truly complete. Code completeness is just one milestone.”
- make sure the user is happy
- be user-focused
- celebrate user feedback, not launches
- if the user isn’t using it
- do some internal marketing
- it’s on shaky foundations
- pay off the technical debt
- reflect on culture of quality
- make the technical debt a user story if possible
- negotiate for engineer-led time
Finally, “whether you’re ready or not, sometimes it’s time for the project to end. Celebrate, retrospect, and clean up.”
These lessons are hard to internalize without experience. The best I can do it to be aware of this guide & refer back to if my project is ever in the weeds.
Section 3 - Execution
3.1 You’re a Role Model!
Being a role model requires a high degree of self-awareness. Choose your words and take actions carefully, since they have more impact now. Improve the quality of your communication & decision making by investing in knowledge building & taking on hard projects. When you don’t know something, don’t ‘fake it until you make it’.
The ultimate metric of success is whether or not people want to work with you:
- Strive to be consistent, reliable, and trustworthy.
- Be proactive and take charge or speak up when needed.
- Have high standards.
- Keep good documents.
- Prepare for failure.
And as per section 1 - keep the big picture in mind. Be aware of the business, the budgets, the users, and the capabilities of your team. You should also plan ahead.
3.2 Influence at Scale
This section talks about 4 types of influnce you will have:
- Giving advice
- Teaching
- Providing Guardrails
- Managing Opportunities
And each type of influnce can be applied at the:
- individual level
- group level
- ‘catalyst’ level
Where the ‘catalyst’ level means frameworks or community structures that endure after you’re gone.
-
Advice: Share knowledge and help colleagues by providing advice, from mentoring to group-level sharing.
- mentoring & peer feedback
- writing & presenting to groups
- change the feedback culture
-
Teaching:
- teach skills through training and coaching,
- scaling to group-level education.
- teaching the teachers, setting curricula, influcing big topics
-
Guardrails:
- review and feedback based
- automation
- culture change
-
Opportunities:
- match individuals with learning opportunities and foster their development.
- at the group level this just means stepping back.
- the ‘catalyst’ here are the people that benefit from the opportunities you’ve provided.
This section acts almost like an organization/dev culture health checklist!
3.3 What’s Next
This section provides career advice.
- There’re many different things you can optimize for in your career. It’s important to choose wisely.
- ‘networking’ is a greasy term; but it’s true that skills, visibility, relationships and experiences open doors.
- reflect if your job is giving you want you need.
- staying with one employer has upsides and downsides- just be aware of them!
Here’s what you should reflect on when evaluating a job change:
why you might stay:
- have you stayed long enough to learn from long feedback loops?
- have you achieved the depth of experience you want?
- are you willing to reset your social capital?
- the learned context at your job makes you valuable & is non-transferrable
- don’t underestimate the life impact of a job change
why you might go:
- are you reducing your employability?
- have you experienced all you’re going to experience? (“some jobs are 1 year of experience, repeated 5 years in a row)
- you can get a more senior role by changing jobs
- $$
- a mismatch in goals or skills in your current job
To that end, consider answering these questions on a scale of 1-5 every month & keeping track of the results:
- Whether you’re learning
- Whether you’re investing in transferable skills or navigating dysfunction
- How you feel about recruiting other people to your team
- How confident you feel
- How stressed you feel
The bit I liked best was a monthly self-survey of your job. It helps you keep perspective on your work and what you're getting out of it.
tags: