Andrew Gerrand works on the Go programming language at Google. His conversation with Jeff begins with a history of the language, including the details behind how Go was conceived and how the open source community contributes to it. Andrew explains how Go intends to simplify problems which have been motifs as Google has scaled. The development of Go is an opportunity to fix issues that weren’t being considered when C was being designed. For example, dependencies are managed more efficiently, shortening build times. The conversation proceeds to a discussion of the unique interface model of Go, which encourages Go objects to have fewer responsibilities, allowing systems to be built with small pieces with small hierarchies. Next, the “slice” data structure is explored. A slice is a view of an array. Following this is a discussion of the concurrency model of Go, the import system, the garbage collector, and the compiler design. Andrew also explains some philosophies about syntax, development, and the standard library. Much of Go’s development is about deciding what can be left out of the language, so that it remains simplified. The conversation concludes with a discussion of the Go community and some suggested learning materials for getting started with the language.