I have recently looked more into GCP and like how open Google is about their best practices. The Software Engineering at Google book is a good read (starts slow, then picks up pace; published for free here; furthermore, there was an ACM TechTalk about it in February) and the Site Reliability Engineering book is available for free here. For the time-constrained there is this overview paper. On the coding side I like the advice given in the Google Style Guides which outline rules for coherent, clean codebases. And management-wise OKRs (Objectives and Key Results) in John Doerr’s Measure What Matters are a widely cited and effective technique.
Finally, Google seems to have an impressive list of internal tooling including
– Ariane – launch calendar
– Blaze – build tool (bazel is open source variant)
– Code Search – finding and reading code
– Critique – code review (see Chapter 19 of Software Engineering at Google;
– Dapper – large-scale distributed systems tracing infrastructure
– Forge – OSS scanning before releasing a project
– Kythe – largely language-agnostic building tool ecosystem
– Piper – source control [a good article on Piper and Citc is here]
– Rosie – large scale code cleanups and changes
– SignCLA – Manage CLAs
– TAP – Testing Automation
– Tricorder – code analysis
– Vomit – Monitoring security issues with OSS packages (Vulnerability MOnIToring)
I haven’t seen many companies who support ensuring code quality that well or who hide the complexity or resource provisioning this elegantly. If I find time, I might do some GCP certifications for fun. The TensorFlow certification looks appealing as well. It is always inspiring to look beyond your own organization’s practices, even if they are excellent as well, to get to know more approaches and alternative engineering cultures. Google is certainly one of the most sophisticated companies to look at in this respect – especially in terms of publications, tooling and techniques I have a lot of respect for their software engineering culture. I might write more about this topic later, but also consider writing a few lines about other players like Microsoft, IBM or AWS at some point.