Software Engineering at Google

Software Engineering at Google Lessons Learned from Programming Over Time

The approach to and understanding of software engineering at Google is unlike any other company. With this book, you'll get a candid and insightful look at how software is constructed and maintained by some of the world's leading practitioners. Titus Winters, Tom Manshreck, and Hyrum K. Wright, software engineers and a technical writer at Google, reframe how software engineering is practiced and taught: from an emphasis on programming to an emphasis on software engineering, which roughly translates to programming over time. You'll learn: Fundamental differences between software engineering and programming How an organization effectively manages a living codebase and efficiently responds to inevitable change Why culture (and recognizing it) is important, and how processes, practices, and tools come into play.
Sign up to use

Reviews

Photo of Thomas Wang
Thomas Wang@xg
5 stars
Jan 23, 2024

> The Software Engineering at Google book (“SWE Book”) is not about programming, per se, but about the engineering practices utilized at Google to make their codebase sustainable and healthy. (These practices are paramount for common infrastructural code such as Abseil.) This is a fantastic book covering large software engineering systems and tools to support software engineers. The contents are great references and research starting points for folks interested in developer platform / developer effectiveness at a large enterprise. The book is also freely available online https://abseil.io/resources/swe-book. Thanks!

Photo of TK
TK@iamtk
3 stars
Dec 17, 2022

It was an interesting read about how software engineering works at Google. There are some things that are particular to Google itself (problems and scale) but most of the topics mentioned I already saw as a process or best practice working in the industry. It's an interesting resource for newcomers and people who didn't have the chance to work in companies that are solving difficult technical and scalability problems. I liked that it's a fast-paced book. Divided into topics and easy to digest. Some of the topics, like LSC, are very Google's (scalability) problem, and maybe it's not that useful for most of the companies in the world. But the overview on culture, tools, and processes were all interesting to me.

Photo of Julien Sobczak
Julien Sobczak@julien-sobczak
4 stars
Oct 22, 2022

Following the success of the SRE book series, an inside look on the other side of the looking-glass. Google is unique and few companies have to address engineering problems at Google scale. All programmers, however, will learn valuable lessons acquired during two decades where Google built some of the most innovative applications, and the underlying platform to make them come to life. The book reintroduces the term engineering with a new definition: programming integrated over time, or how to make software programs stand the test of time. You will find in this book how tens of thousands of engineers collaborates across the same codebase, in an quite unusual way. The first part is relatively short and focuses on Google engineering culture. The second part is about processes and presents common software development practices, like automated testing. I found few things that are not already discussed elsewhere in the literature, even if Google’s scale presents new challenges. These chapters are extremely well written and clarify many misunderstood points like the usage of test doubles. I hope that having Google printed on the book cover helps those practices spread even further. The last part is about internal tools used by Googlers. This is the largest part, and also the part I found the most interesting. The chapter on dependency management is really excellent and does a remarkable job in introducing their monorepo approach. More diagrams, screenshots, or pictures (like a Testing on the Toilet flyer) would have been appreciated (especially concerning the chapters about CI/CD and large-scale changes). It’s a large book with almost no code, as it has more to do with engineering than programming. It’s a book about Google. You may not want to apply the same techniques in your organization, and that’s totally fine. But you cannot ignore fresh perspectives on our discipline to help us deliver even better software. I liked this book and I would like other large-scale companies to put on paper their practices too.

Photo of Fatih Arslan
Fatih Arslan@fatiharslan
5 stars
Jul 28, 2022

Must read for any Software engineer. It doesn't matter if you work for a small or big company, there are many valuable lessons and tips&tricks to make you a better Software Engineer.

Photo of Chad McElligott
Chad McElligott@chadxz
4.5 stars
Mar 4, 2023
Photo of Christian Bager Bach Houmann
Christian Bager Bach Houmann@cbbh
3 stars
Jul 20, 2024
Photo of Cezar Craciun
Cezar Craciun@cezarc
4 stars
May 1, 2023
Photo of Akshay Vadher
Akshay Vadher@akshay_vadher
5 stars
Jan 30, 2023
Photo of Sapan Parikh
Sapan Parikh@sapan
5 stars
Jan 28, 2023
Photo of Nitesh Donti
Nitesh Donti@nitesh
5 stars
Jan 24, 2023
Photo of Bilal Cinarli
Bilal Cinarli@bcinarli
4 stars
Aug 24, 2022
Photo of Carlos Becker
Carlos Becker@caarlos0
5 stars
Aug 12, 2022
Photo of Milan Aleksić
Milan Aleksić@milanaleksic
4 stars
Aug 12, 2022
Photo of Roy Z
Roy Z@roy
4 stars
Jan 28, 2022
Photo of Will Butt
Will Butt@will
2 stars
Aug 13, 2021

Highlights

Photo of Burak Kaan Özbek
Burak Kaan Özbek@burakkaanozbek

Over a span of a decade or more, most program dependencies, whether implicit or explicit, will likely change. This recognition is at the root of our distinction between software engineering and programming