Resources for Staff-plus engineers.
When I was working on Your first 90 days as CTO or VP Engineering, one of the most valuable things I did was build a list of resources for folks (especially me) to continue their learning and exploration.
Recently, I’ve been focused on the question of “What does it mean to be a Staff or Staff-plus engineer, and how do you get there?”, and have gathered this collection of resources for folks who are looking to grow as or into such roles.
Your Network
Almost unanimously Staff-plus engineers’ most valuable learning resource weren’t a book, blog, talk or paper, but instead their network of peers and mentors. If you only have one hour to develop yourself as an engineer, your best bet would be meeting people in similar roles.
What do Staff-plus Engineers do?
Folks’ descriptions of their roles:
- On Being A Principal Engineer by Silvia Botros
- On Being a Senior Engineer by John Allspaw
- Thriving on the Technical Leadership Path by Keavy McMinn
- What’s a senior engineer’s job? by Julia Evans
- What a Senior Staff Software Engineer Actually Does, Part 1: The Role and My Tasks and Part 2: The Mindset and Focus of the Role by Joy Ebertz
- What does Staff level mean at GitLab?
Becoming a Staff-plus Engineer
Folks sharing their stories of becoming a Staff-plus engineer:
- Becoming a Staff Engineer – Interview with Kristina Fox, Staff iOS Engineer at Intuit by Kaya Thomas
- On becoming a senior technical leader by Jesse Pollak
- On Mid-Career and Managers by Ryn Daniels
- How does one become a Staff Software Engineer at Google? on Quora
- The Engineer/Manager Pendulum by Charity Majors
Operating as a Staff-plus engineer
- Being Glue by Tanya Reilly
- Computers can be understood by Nelson Elhage
- Effective Mental Models for Code and Systems by Cindy Sridharan
- “I Wouldn’t Start From Here”. How to Make a Big Technical Change by Tanya Reilly
- Migrations: the sole scalable fix to tech-debt
- On Mid-Career and Team Dynamics by Ryn Daniels
- Reclaim unreasonable software by Will Larson
- Surviving the Organisational Side Quest by Tanya Reilly
- Systems that defy detailed understanding by Nelson Elhage
- Team Objectives by Marty Cagan
- Technical Decision Making by Cindy Sridharan
- Technical Research and Preparation by Keavy McMinn
- The Behind-the-scenes Work of Tech Leadership by Jean Hsu
- Understanding Project Management Will Improve Your Developer Job by Daniel Na
- Where to Start by Keavy McMinn
Engineering Strategy
Articles on engineering strategy in general:
- How Big Technical Changes Happen at Slack - Several People Are Coding
- On Drafting an Engineering Strategy
- Defining a Tech Strategy
Examples of engineering strategies:
- Run less software by Rich Archibold
There are also many great resources on other facets of strategy as well, for example Marty Cagan’s series on Product Strategy.
Books
Although I’ve found that many folks don’t read too many books, when I asked Staff engineers for their most valuable resources, they inevitably mentioned a personal mentor or a book. They had blog posts and tech talks they might mention related to a more specific problem, but they were most changed by this larger, more papery format.
Some books which were recommended:
- A Philosophy of Software Design by John Ousterhout
- Accelerate: Building and Scaling High Performing Technology Organizations by Forsgren, Humble and Kim.
- Becoming a Technical Leader: An Organic Problem-Solving Approach by Gerald Weinberg
- Building Evolutionary Architectures by Ford, Parsons and Kua
- Escaping the Build Trap: How Effective Product Management Creates Real Value by Melissa Perri
- Good Strategy Bad Strategy: The Difference and Why it Matters
- High Output Management eBook: Andrew S. Grove
- The Manager’s Path: A Guide for Tech Leaders Navigating Growth and Change by Camille Fournier
- The Mythical Man-Month by Fred Brooks
- The Phoenix Project by Kim, Behr and Spafford.
- The Passionate Programmer by Chad Fowler
- The Pragmatic Programmer by Andrew Hunt, David Thomas
- Resilient Management by Lara Hogan
- Software Design X-Rays: Fix Technical Debt with Behavioral Code Analysis by Adam Tornhill
- Thinking in Systems: A Primer by Donella Meadows
If you’re looking for even more, recommended book lists abound, including my own at Irrational Exuberance’s Best Book.
Talks
The Staff-plus engineers I’ve chatted with have generally mentioned giving talks as valuable to them more than listening to talks, but there certainly are some excellent talks out there. Cindy Sridharan (twitter) is the best source of amazing talks, in particular her write ups of Best of 2019 in Tech Talks, Best of 2018 in Tech Talks, and Best of 2017 in Tech Talks.
Papers
Relatively few Staff-plus Engineers are avid readers of Computer Science papers. However, most are familiar with a handful of foundational papers, and the small subset who do spend time reading papers tend to get quite a bit out of it.
If you aspire to join the category of frequent paper readers, there’s no better place than Adrian Colyer’s the morning paper, which will send you a summary of a computer science paper every weekday. If you’re more interested in getting some foundational exposure to some well-known papers, first read one of How to Read an Academic Article by Peter Klein or How to Read a Paper by S. Keshav, and then jump into this list of recommended papers:
- Dynamo: Amazon’s Highly Available Key-value Store
- On Designing and Deploying Internet-Scale Services
- No Silver Bullet - Essence and Accident in Software Engineering
- Out of the Tar Pit
- The Chubby lock service for loosely-coupled distributed systems
- Bigtable: A Distributed Storage System for Structured Data
- Raft: In Search of an Understandable Consensus Algorithm
- Paxos Made Simple
- SWIM: Scalable Weakly-consistent Infection-style Process Group Membership Protocol
- Hints for Computer System Design
- Big Ball of Mud
- The Google File System
- CAP Twelve Years Later: How the Rules Have Changed
- Harvest, Yield, and Scalable Tolerant Systems
- MapReduce: Simplified Data Processing on Large Clusters
- Dapper, a Large-Scale Distributed Systems Tracing Infrastructure
- Kafka: a Distributed Messaging System for Log Processing
- Large-scale cluster management at Google with Borg
- Mesos: A Platform for Fine-Grained Resource Sharing in the Data Center
Probably the best place to find high-quality papers to read is Papers We Love, who also run meetups to discuss papers. A few other resources are the ACM SIGOPS Hall of Fame Award list and Irrational Exuberance’s paper collection.
Other nice things
As I did research for these resources, I found some other pieces that didn’t quite fit anywhere above, but which I think are good and worth looking at nonetheless:
- Testing in Production, the safe way and Testing in Production: the hard parts by Cindy Sridharan
- A decade in review in tech by Cindy Sridharan
- Boogeyman Problems by Dan Na
If you find more, please send them my way!