This talk is about how we can use interfaces in Go to write testable code that can be easily modified, or "grows with grace". Go's interfaces — static, checked at compile time, dynamic when asked for — are, for me, the most exciting part of Go from a language design point of view. If I could export one feature of Go into other languages, it would be interfaces. |--| — Russ Cox. We'll cover the following topics:. Taking advantage of Go's automatically satisfied interfaces. Choosing third-party packages that are easy to extend for your own purposes. How interfaces are used in Go's standard library. A look at the internals. There will be a mixture of practices I've seen used in third-party packages and the standard library, and also some I've successfully applied to our own large codebase.