This, to me, seems largely a superset of Google's style guide. There is some specific guidance for working with channels, mutexes, and atomics. My impression from my time at Google was that the Go team really expects you to never use mutexes and atomics, preferring goroutines for all synchronization. Sometimes that is impractical, though.