A Philosophy of Software Design versus Software Engineering at Google.

Both show up on every "best" list. They're not competitors. They're a sequence. Here's which one to read first, and when.

Reviewed by Ashish Sheth · Updated June 2026
Option A
A Philosophy of Software Design
A Philosophy of Software Design
John Ousterhout · 2021
READ FULL REVIEW →
Option B
Software Engineering at Google
Software Engineering at Google
Titus Winters, Tom Manshreck, Hyrum Wright · 2020
READ FULL REVIEW →
Author
John Ousterhout
Titus Winters, Tom Manshreck, Hyrum Wright
Pages
196
599
Published
2021
2020
Publisher
Yaknyam Press
O'Reilly Media
Level
intermediate
intermediate to advanced
Amazon Rating
4.6/5 (1,320)
4.6/5 (712)
Goodreads Rating
4.19/5 (4,100)
4.32/5 (1,480)
A Philosophy of Software Design
Strengths
+ Short and punchy: most engineers finish it in a long weekend
+ Reframes everyday design decisions with sharper language
+ Quietly contradicts several popular Clean Code rules with stronger arguments
+ 2nd edition adds three new chapters and tightens the original prose
Caveats
Examples are small and educational — some readers want bigger real-world systems
Disagrees with Robert C. Martin's Clean Code, which can be jarring if you've internalized that book
Light on coverage of distributed systems or concurrent design
Software Engineering at Google
Strengths
+ Honest about what worked, what didn't, and what's specific to Google's scale
+ Best available treatment of large-scale code change and deprecation
+ Each chapter stands alone — you can read just the topics you need
+ Coined Hyrum's Law in a form every engineer should internalize
Caveats
Some chapters are heavy on Google-specific tools (Blaze, Critique, Piper)
Cultural chapters can feel like recruiting marketing in places
Less directly applicable at a 10-person startup than at a 1,000-person company
The verdict
Read A Philosophy of Software Design first to build foundations, then move to Software Engineering at Google for advanced concepts.
A Philosophy of Software Design
Check Price on Amazon →
Software Engineering at Google
Check Price on Amazon →
Frequently asked
Which is better, A Philosophy of Software Design or Software Engineering at Google?
Read A Philosophy of Software Design first to build foundations, then move to Software Engineering at Google for advanced concepts.
Is A Philosophy of Software Design better than Clean Code?
They disagree on several specifics — Ousterhout argues for deeper modules and longer functions where Martin argues for shorter functions and tighter classes. Most engineers benefit from reading both, then trusting Ousterhout's framing on disagreements: it's the more rigorous of the two.
Is Software Engineering at Google only useful if you work at a big company?
Most chapters apply at any team size of about 20+ engineers. The book is explicit about which practices need scale to pay off and which work even on small teams — read the testing, code review, and deprecation chapters first; treat the monorepo and infrastructure chapters as context.