Overall this is pretty solid advice, with only two things I disagreed with a bit:<p>> Go is still a new language<p>Go is between 12 and 17 years old, depending on how you look at it. It's not as old as the big players, but it's far from new.<p>> Do not think returning an interface is a bad idea<p>It's almost always a bad idea to return an interface. Return a type that implements said interface(s).
If you want to hide away details, use lowercase to not export them. This section had a solid point, then backtracked a little, and I wish it hadn't.