---
title: Go at Google I/O and Gopher SummerFest
date: 2014-10-06
by:
- Francesc Campoy
tags:
- conference
- io
- report
summary: Reporting from Google I/O 2014 and the GoSF Go SummerFest.
---

## Introduction

The week of June 23rd was a good week for gophers in San Francisco. Go was a big
part of [Google I/O](https://www.google.com/events/io) on Wednesday and
Thursday, and on Monday we took advantage of the large gopher population to run
the [Go SummerFest](http://www.meetup.com/golangsf/events/170421402/), a
special instance of the [GoSF](http://www.meetup.com/golangsf) meetup. This
blog post is a recap of both events.

## Gopher SummerFest

{{image "io2014/summerfest.jpg" 800}}

On the Monday, more than 200 gophers gathered at the Google office in San
Francisco to hear a series of talks:

  - The State of Go, ([slides](https://docs.google.com/a/golang.org/file/d/0B-nws9GU_6qVQm9tdncxWnJGUTQ/edit)
    and [video](http://www.hakkalabs.co/articles/state-go)) by Andrew Gerrand.
  - I was wrong, again! ([slides](https://docs.google.com/a/golang.org/file/d/0B-nws9GU_6qVTTUwS25qaFlzMGs/edit)
    and [video](http://www.hakkalabs.co/articles/why-we-use-go)), by Derek Collison.
  - Go at Splice ([slides](https://docs.google.com/a/golang.org/file/d/0B-nws9GU_6qVZklnNnJITlhSbXc/edit)), by Matt Aimonetti
  - Quick testing with quick ([slides](https://docs.google.com/a/golang.org/file/d/0B-nws9GU_6qVVElmOHpwamp4aTA/edit)), by Evan Shaw
  - Something about Go (no slides), by Blake Mizerany.

More comments and pictures from the event are available on the
[meetup event page](http://www.meetup.com/golangsf/events/170421402/).

## Go at Google I/O

On the Wednesday and Thursday, Go was at Google I/O in two different
formats: the Go booth in the sandbox area and the Go code labs available in the
code lab area and all around the world through
[I/O Extended](https://www.google.com/events/io/io-extended).

### The Go booth

{{image "io2014/booth.jpg" 800}}

The Go booth was part of the Developer Sandbox area.

For the two days of the conference, some gophers from Google and other
companies gave a series of talks and demonstrations. The talks were not
recorded, but the slides and some screencasts and blog posts will be shared
soon.

  - Organizing Go Code, by David Crawshaw. ([slides](/talks/2014/organizeio.slide#1))
  - Testing Techniques, by Andrew Gerrand. ([video](https://www.youtube.com/watch?v=ndmB0bj7eyw)
    and [slides](/talks/2014/testing.slide#1))
  - Go for Java Developers, by Francesc Campoy. ([slides](/talks/2014/go4java.slide#1))
  - Camlistore: Android, ARM, App Engine, Everywhere,
    by Brad Fitzpatrick.
    ([slides](/talks/2014/camlistore.slide#1))
  - Go Compilation Complexities, by Ian Lance Taylor. ([slides](/talks/2014/compiling.slide#1))
  - SourceGraph: a Code Search Engine in Go,
    by Quinn Slack. ([video](https://youtu.be/-DpKaoPz8l8) and [slides](https://go-talks.appspot.com/github.com/sourcegraph/talks/google-io-2014/gio2014.slide#1))

We also organized Q&A sessions and lightning talks by members of the Go
community:

  - [Brad Rydzewski](https://twitter.com/bradrydzewski) talked about his project [drone.io](https://drone.io/).
  - [Barak Michener](https://twitter.com/barakmich) presented [Cayley](https://github.com/google/cayley),
    an open source graph database.
  - [Matt Aimonetti](https://twitter.com/mattetti) discussed how Go is used at [Splice](https://splice.com/).
  - [Sugu Sougoumarane](https://twitter.com/ssougou) talked about how [vitess](https://github.com/youtube/vitess) solved
    scalability problems at YouTube.
    ([video](https://youtu.be/midJ6b1LkA0))

### The Go code lab

This year attendees of Google I/O had a code lab area with self-service
computers where they could sit and learn Go. The code labs were also available
to anyone through the Google I/O extended brand. You can try it yourself at
[io2014codelabs.appspot.com](https://io2014codelabs.appspot.com/).

{{image "io2014/collage.jpg" 800}}

## Conclusion

Thanks to the organizers, speakers, and attendees who helped make these events a
great success. See you next year. (Or at [dotGo](http://dotgo.eu) this week!)
