Notes on The Staff Engineer's Path: Part I
I have been reading this book for quite a while. I read slowly but steadily, noting every sentence that resonates with me and my current work. Even though I haven't finished the book yet, I already have some notes worth sharing, both with you and for my future reference.
Part I
The initial section of the book is dedicated to understanding your work context. It involves becoming familiar with the people around you: your manager, manager's manager, decision makers, influences and other staff engineers. As much as important is to know the company's goal and how to alight your work to achieve these goals.
Notes
Regarding seniority levels: "The levels below [senior] are meant for individuals to develop their autonomy; the higher levels increase impact and responsibility."
The significance of the big picture: "Good decisions require context."
Decisions that might be optimal for a single group may not be the same when considering a broader perspective
Staff engineers ensure it's completed with high engineering standards
When a staff engineer and TPM [Technical Program Manager] collaborate effectively, they can form a dream team
Staff engineers serve as role models
Staff engineering is a leadership role [not managerial]
Whenever there's a feeling of 'someone should do something here', there is a reasonable chance that the someone is you.
Teaching is a form of leadership
Take on ambiguous, messy, difficult, problems and do just enough work on them to make them manageable by someone else
What matters is that the problems get solved, not how. Similar to Get it Done
You should be telling your manager what is important
On reporting: "reporting high will give you a broad perspective"
"Make sure to have skip-level meetings to stay connected to your org's goals" - only if you are reporting to someone low in the org hierarchy
On your scope: "cultivate and develop the next generation of senior and staff engineers"
The more senior you get more there is expectations that you can shift across each of these four jobs (Core technical skills, Product management, Project management, People management) easily and fluidly
On your focus: "choosing what not to do, be thoughtful about what you take on"
The work that's most important will often be the work that nobody else sees
Know why the problems you are working on is strategically important
If there are more people being the wise voice of reason that there are people actually typing code don't butt in
On aligning with manager: "write out understanding of your job and share it with your manager"
Your job is to make your organization successful
Note down facts that might be useful later - but cashier journal and keep it handy. Personally I like to jot down the tasks I need to finish in the future
On new hires: "new person can always see the problem"
Respect that came before
Build friendly relationships with other staff engineers
Build relationship with product folks, customer support, admin staff and more
Your are here to help your employer achieve it's goal
Pay attention to hands-all meetings
Nines don't matter when users aren't happy
Measure success from your users' point of view
Your goal is to solve the problem, not necessarily to write code
If you don't understand how decisions are made in your company, you will find yourself unable to anticipate or influence them
On getting in the room (where decisions are made): adding value to the room, your need to reduce the cost of including you: show up prepared, speak concisely and be collaborative - applicable to any rooms like chats, calls and etc.
Understand who the influences - it could be "old-timers" or "connectors", regardless of rank or title
When you look back, understand what you were trying to achieve and how it went
Discuss on Twitter