我訪談過的 Staff-plus 工程師,沒有人是獨自走到這一步的。多數人要嘛透過大量閱讀,要嘛靠著經營一個強大的同儕網絡。本節整理了他們推薦的資源。
你的人際網絡#
幾乎所有人一致認為,Staff-plus 工程師最有價值的學習資源,不是書、部落格、談話或論文,而是他們的同儕與導師網絡。
如果你每天只有一小時投資在自我成長上,最好的選擇是去建立一個由相似角色的人組成的網絡。
若想找 Slack 社群,Rands Leadership Slack 裡的
#staff-principal-engineering是個相當活躍的頻道。
部落格與文章#
以下依主題整理推薦讀物。
Staff-plus 工程師都在做什麼?
- Being a principal engineer at Skyscanner,Nicky Wrightson
- Defining a Distinguished Engineer,Jessie Frazelle
- How I operated as a Staff engineer at Heroku,Amy Unger
- Not all engineering leaders are engineering managers,Tanya Reilly
- The Nuts and Bolts,Tanya Reilly
- On Being A Principal Engineer,Silvia Botros
- On Being a Senior Engineer,John Allspaw
- Staff Engineering,Sam Kleinman
- Thriving on the Technical Leadership Path,Keavy McMinn
- What’s a senior engineer’s job?,Julia Evans
- What a Senior Staff Software Engineer Actually Does(Part 1: The Role and My Tasks/Part 2: The Mindset and Focus of the Role),Joy Ebertz
- What does Staff level mean at GitLab?,Charlie Ablett
如何成為 Staff-plus 工程師
- Becoming a Staff Engineer – Interview with Kristina Fox, Staff iOS Engineer at Intuit,Kaya Thomas
- On becoming a senior technical leader,Jesse Pollak
- On Mid-Career and Managers,Ryn Daniels
- How does one become a Staff Software Engineer at Google?(Quora)
- The Engineer/Manager Pendulum,Charity Majors
- Things to Know About Engineering Levels,Charity Majors
如何勝任 Staff-plus 工程師的工作
- Being Glue,Tanya Reilly
- Computers can be understood,Nelson Elhage
- Effective Mental Models for Code and Systems,Cindy Sridharan
- “I Wouldn’t Start From Here.” How to Make a Big Technical Change,Tanya Reilly
- Migrations: the sole scalable fix to tech-debt,Will Larson
- On Mid-Career and Team Dynamics,Ryn Daniels
- Surviving the Organisational Side Quest,Tanya Reilly
- Systems that defy detailed understanding,Nelson Elhage
- Team Objectives,Marty Cagan
- Technical Decision Making,Cindy Sridharan
- Technical Research and Preparation,Keavy McMinn
- The Behind-the-scenes Work of Tech Leadership,Jean Hsu
- Understanding Project Management Will Improve Your Developer Job,Daniel Na
- What Does Sponsorship Look Like?,Lara Hogan
- Where to Start,Keavy McMinn
- Design Docs, Markdown and Git,Caitie McCaffrey
技術規格文件(Technical Specifications)
- A practical guide to writing technical specs
- Design Docs at Google
- Design Docs, Markdown, and Git
- Documenting Architecture Decisions
- How to write a better technical design document
- Technical Decision-Making and Alignment in a Remote Culture
- Writing Technical Design Docs
工程策略(Engineering Strategy)
- A Framework For Responsible Innovation
- How Big Technical Changes Happen at Slack(Several People Are Coding)
- On Drafting an Engineering Strategy
- Defining a Tech Strategy
- Delivering on an architecture strategy
- Stepping Stones not Milestones
- Achieving Alignment and Efficiency Through a Technical Strategy
- The difficult teenage years: Setting tech strategy after a launch,Anna Shipman
- Learning to have an engineering vision
工程策略的實例:Run less software,Rich Archibold。此外還有許多探討策略其他面向的好資源,例如 Marty Cagan 的 Product Strategy 系列。
書籍#
雖然我發現很多人並不讀太多書,但當我問 Staff 工程師哪些資源對他們最有價值時,他們無可避免地會提到某位個人導師,或某本書。針對更具體的問題,他們或許會提到部落格文章與技術談話,但真正深刻改變他們的,往往是書這種篇幅更長、更「紙本」的形式。
受推薦的書單
- A Philosophy of Software Design,John Ousterhout
- Accelerate: Building and Scaling High Performing Technology Organizations,Forsgren、Humble、Kim
- Becoming a Technical Leader: An Organic Problem-Solving Approach,Gerald Weinberg
- Building Evolutionary Architectures,Ford、Parsons、Kua
- Escaping the Build Trap: How Effective Product Management Creates Real Value,Melissa Perri
- Good Strategy Bad Strategy: The Difference and Why it Matters,Richard Rumelt
- High Output Management,Andy Grove
- The Manager’s Path: A Guide for Tech Leaders Navigating Growth and Change,Camille Fournier
- The Mythical Man-Month,Fred Brooks
- The Phoenix Project,Kim、Behr、Spafford
- The Passionate Programmer,Chad Fowler
- The Pragmatic Programmer,Hunt、Thomas
- Resilient Management,Lara Hogan
- Software Design X-Rays: Fix Technical Debt with Behavioral Code Analysis,Adam Tornhill
- Thinking in Systems: A Primer,Donella Meadows
若還想要更多推薦書單,網路上比比皆是,包括我自己在 Irrational Exuberance’s Best Books 上整理的清單。
談話(Talks)#
我聊過的 Staff-plus 工程師普遍認為,「上台講」比「聽別人講」對他們更有價值,不過確實有一些很棒的談話值得一看。Cindy Sridharan(Twitter)是找到精彩談話的最佳來源,特別是她整理的 Best of 2019/2018/2017 in Tech Talks。
論文(Papers)#
相對少數的 Staff-plus 工程師會熱衷閱讀電腦科學論文。不過大多數人都熟悉少數幾篇奠基性論文,而真正花時間讀論文的那一小群人,通常收穫頗豐。
若你想成為勤讀論文的一員,Adrian Colyer 的 the morning paper 是最佳起點,它每個工作日都會寄給你一篇電腦科學論文的摘要。想先接觸一些知名論文,可先讀 Peter Klein 的 How to Read an Academic Article,或 S. Keshav 的 How to Read a Paper。
推薦論文清單
- 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
找優質論文最好的地方大概是 Papers We Love(也會舉辦論文討論聚會)。其他資源還包括 ACM SIGOPS Hall of Fame Award 清單,以及 Irrational Exuberance 的論文收藏。
其他值得一看的東西#
在整理這些資源的過程中,我還找到一些放不進上述任何分類、但我認為很好、值得一看的內容:
- Testing in Production, the safe way/Testing in Production: the hard parts,Cindy Sridharan
- A decade in review in tech,Cindy Sridharan
- Boogeyman Problems,Dan Na
如果你發現更多好資源,歡迎寄給我!