freeprogrammingbooks.com

Software Engineering at Google

By Titus Winters, Tom Manshreck, Hyrum Wright (2020)

Software Engineering at Google book cover

Software engineering has matured into a discipline that goes far beyond writing code. As software becomes more embedded in every aspect of modern life, organizations face growing challenges in maintaining large codebases over time, scaling engineering practices across teams, and making sound trade-offs under uncertainty.

Google, one of the largest software engineering organizations in the world, has spent decades refining its approach to building and maintaining software at scale. The lessons learned from that experience offer a rare window into what works when time, growth, and complexity are the primary constraints.

This book distills the collective wisdom of hundreds of engineers into a practical exploration of the culture, processes, and tools that enable sustainable software development. It is not about programming in the narrow sense, but about the engineering discipline required to keep systems healthy over years and decades.

About the book

Software Engineering at Google: Lessons Learned from Programming Over Time is a comprehensive examination of the engineering practices behind one of the world’s most complex software ecosystems. Curated by Titus Winters, Tom Manshreck, and Hyrum Wright, the book brings together contributions from dozens of Google engineers across every major discipline.

The core thesis is that software engineering is “programming integrated over time.” While programming focuses on writing code that works now, software engineering concerns itself with code that remains maintainable, adaptable, and scalable over its entire lifecycle. The book explores three fundamental dimensions: time and change (how code must evolve), scale and growth (how organizations must adapt), and trade-offs and costs (how decisions get made).

This book is aimed at experienced programmers, engineering leaders, and anyone responsible for maintaining production systems. It assumes familiarity with software development but does not require knowledge of any specific language or framework. The principles discussed are language-neutral and broadly applicable to organizations of any size.

What you will learn

Readers will gain a deep understanding of how Google approaches software engineering at every level. Key topics include how to build and sustain a healthy engineering culture based on humility, respect, and trust; how code review, documentation, and knowledge sharing scale across thousands of engineers; and how testing strategies evolve from unit tests to large-scale integration testing.

The book also covers version control and branch management in a monorepo, build systems and dependency management at massive scale, continuous integration and delivery pipelines, static analysis, code search tools, deprecation strategies, and leading engineering teams. Each chapter ties back to the core themes of time, scale, and trade-offs, providing a coherent framework rather than isolated tips.

A recurring insight is Hyrum’s Law: with enough users, all observable behaviors of an API will be depended on by someone. This simple observation has profound implications for API design, refactoring, and long-term maintenance. Another notable concept is the Beyoncé Rule, which shifts responsibility for testing from infrastructure teams to automated CI systems, enabling sustainable scaling of engineering practices.

Table of contents

  • Foreword
  • Preface
  • What Is Software Engineering?
  • Culture
  • How to Work Well on Teams
  • Knowledge Sharing
  • Engineering for Equity
  • How to Lead a Team
  • Leading at Scale
  • Measuring Engineering Productivity
  • Processes
  • Style Guides and Rules
  • Code Review
  • Documentation
  • Testing Overview
  • Unit Testing
  • Test Doubles
  • Larger Testing
  • Deprecation
  • Tools
  • Version Control and Branch Management
  • Code Search
  • Build Systems and Build Philosophy
  • Critique: Google’s Code Review Tool
  • Static Analysis
  • Dependency Management
  • Large-Scale Changes
  • Continuous Integration
  • Continuous Delivery
  • Compute as a Service
  • Conclusion
  • Afterword
  • Index

Book details

  • Title: Software Engineering at Google: Lessons Learned from Programming Over Time
  • Author(s): Titus Winters, Tom Manshreck, Hyrum Wright
  • Publication year: 2020
  • Publisher: O’Reilly Media
  • Pages: 602
  • Estimated reading time: ~15 h
  • Level: Intermediate
  • Main category: Software Engineering
  • Subcategory: (not applicable)
  • Language: English
  • License: CC BY-NC-ND 4.0

More books in: Software Engineering


Legal notice: This book is shared for educational purposes only. The content is distributed under Creative Commons licenses or with explicit permission from the author. FreeProgrammingBooks may host files that comply with their respective licenses.

Want more free books?

Join our channels and receive free books, courses and tech news.