The errgroup package provides a way to run a group of goroutines. It’s similar to the well known WaitGroup but allows for easy and correct cancellation.
Go interfaces apply automatically to any types that implement all the methods. This means you can define your interfaces near the code that uses them. They also provide an easy way of stubbing out code for use in unit tests. Here’s an example.
The default vim go language syntax file uses a tabstop of 8, which is a bit excessive.