# Go videos from Google I/O 2012
2 Jul 2012
Tags: talk, video, concurrency, appengine, ethos
Summary: Phew! Google I/O is over for another year, and what an event it was. Thanks to our guest speakers and everyone who attended the four Go sessions. It was a lot of fun.

Andrew Gerrand

## Introduction

Phew! Google I/O is over for another year, and what an event it was. Thanks to our guest speakers and everyone who attended the four Go sessions. It was a lot of fun.

Here are the session videos:

**Go concurrency patterns** by Rob Pike

_Concurrency is the key to designing high performance network services. Go's concurrency primitives (goroutines and channels) provide a simple and efficient means of expressing concurrent execution. In this talk we see how tricky concurrency problems can be solved gracefully with simple Go code._

.iframe //www.youtube.com/embed/f6kdp27TYZs 304 540

## Go in production

_Since Go's release in 2009 many companies (besides Google, of course) have used the language to build cool stuff. In this session Gustavo Niemeyer (Canonical), Keith Rarick (Heroku), Evan Shaw (Iron.io), and Patrick Crosby (StatHat) share their first-hand experience using Go in production environments._

.iframe //www.youtube.com/embed/kKQLhGZVN4A 304 540

## Meet the Go team

_A panel discussion with David Symonds, Robert Griesemer, Rob Pike, Ken Thompson, Andrew Gerrand, and Brad Fitzpatrick._

.iframe //www.youtube.com/embed/sln-gJaURzk 304 540

**Computing Map Tiles with Go on App Engine** by Chris Broadfoot and Andrew Gerrand

_In this talk we use the Maps API and Go on App Engine to build an app to build custom tile sets for Google Maps. The app demonstrates using Go's suitability for computation in the cloud and App Engine's key scalability features, such as Task Queues and Backends._

.iframe //www.youtube.com/embed/sPagpg0b7no 304 540
