The Staff Engineer's Path: A Guide for Individual Contributors Navigating Growth and Change
Rate it:
Open Preview
Kindle Notes & Highlights
7%
Flag icon
“So you know you’re supposed to be working on things that are impactful and valuable. But where do you find this magic backlog of high-impact work that you should be doing?” Her answer: “You create it!”
7%
Flag icon
autonomy demands responsibility. If the thing they asked you to work on turns out to be harmful, you have a responsibility to speak up.
9%
Flag icon
The work that’s most important will often be the work that nobody else sees. It might be a struggle to even articulate the need for it, because your teams don’t have good mental models for it yet.
25%
Flag icon
Think big. If you’re working in a codebase that takes a day to build and deploy, it might be tempting to wish for incremental improvement. “This needs to take only half a day!” But go further than that. If you set a goal of 20-minute deploys, the teams pushing toward that goal have an incentive to have bigger, braver ideas. Maybe they’ll contemplate replacing the CI/CD system, or discarding a test framework that can never be compatible with that goal. Inspire people to get creative.
26%
Flag icon
When you’re choosing between Option A and Option B, there’s an implicit third option, C: don’t decide. People often default to Option C, because it lets them stay on the fence and not upset anyone. This is the worst thing you can do.
29%
Flag icon
Previous attempts to improve reliability have centered on adding more testing to your release path—but this actually slowed deploy times and lengthened outages.
34%
Flag icon
As a staff engineer, you’ll likely have opinions on a bunch of things (as in Figure 4-11) you haven’t been invited to help with. If you see a project that’s going in a dangerous direction, or you have ideas about how to make it better, you might nudge your way in and have some conversations. Meddling can be very welcome, or very much the opposite. Make sure you’re not “lobbing a water balloon”: getting involved long enough to cause chaos, then disengaging without sticking around to experience the consequences of your changes.
40%
Flag icon
Product management is a huge and difficult discipline, and it’s not easy to understand what your users actually want—as opposed to what they’re telling you.
48%
Flag icon
“If I had asked people what they wanted, they would have said faster horses.”
51%
Flag icon
The reasons your colleague gives you for being blocked aren’t necessarily the real ones. The person could be intimidated, stuck, or oversubscribed.
63%
Flag icon
One option is to focus on education and hands-on experience. You can run continual classes about the system, making sure that everyone who might have to work on it in future is fully trained and has logged enough hours to handle any problems that might arise. The other option is to make it as easy as possible for people to understand the system when they need it.