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 B
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.