---
title: Go at OSCON
date: 2014-08-20
by:
- Francesc Campoy
tags:
- conference
- oscon
summary: Reporting from OSCON 2014.
---

## Introduction

What happens in Portland in July? [OSCON](http://www.oscon.com/oscon2014)! At
this year's conference, Go was more present than ever before, with five talks,
two workshops, a
[Birds of a Feather](http://en.wikipedia.org/wiki/Birds_of_a_feather_(computing))
session, and a meetup.

## Talks

[Matt Stine](http://twitter.com/mstine) talked about his experience switching
from Java to Go with
[A recovering Java developer learns Go](http://www.slideshare.net/mstine/java-devlearnstogooscon)
while [Steve Francia](https://twitter.com/spf13) presented
[Painless Data Storage with MongoDB and Go](http://spf13.com/presentation/MongoDB-and-Go).
Steve also presented
[Go for Object Oriented Programmers](http://spf13.com/presentation/go-for-object-oriented-programmers),
where he explained how some object oriented concepts can be implemented in Go.

{{image "osconreport/talks.png" 800}}

Finally, [Josh Bleecher Snyder](http://twitter.com/offbymany) talked about his
experience writing tools to work with Go source code in
[Gophers with hammers](/talks/2014/hammers.slide#1),
and [Francesc Campoy](http://twitter.com/francesc) talked about all the things
that could have gone wrong and what the Go team did to prevent them
[Inside the Go playground](/talks/2014/playground.slide).

## Workshops

At the beginning of OSCON's workshop day, Steve Francia presented how to build a
web application and a CLI tool during
[Getting started with Go](http://spf13.com/presentation/first-go-app) to a big
room full of Gophers.

{{image "osconreport/workshops.png" 800}}

In the afternoon, [Chris McEniry](https://twitter.com/mmceniry) gave his
[Quick introduction to system tools programming with Go](http://cdn.oreillystatic.com/en/assets/1/event/115/A%20Quick%20Introduction%20to%20System%20Tools%20Programming%20with%20Go%20Presentation.pdf) where he went over some useful skills to
write system tools using Go and its standard library.

## Additional events

To take advantage of the increased Gopher population in Portland during OSCON, we
organized two extra events: the first [PDXGolang](https://twitter.com/pdxgolang)
meetup and a
[Birds of a Feather session](http://www.oscon.com/oscon2014/public/schedule/detail/37775).

{{image "osconreport/meetup.png" 800}}

At the meetup Francesc Campoy talked about
[Go Best Practices](/talks/2013/bestpractices.slide) and
[Kelsey Hightower](https://twitter.com/kelseyhightower) gave a great
introduction to [Kubernetes](https://github.com/GoogleCloudPlatform/kubernetes),
a container management system for clusters written in Go by Google. If you live
in Portland, make sure you [join the group](http://meetup.com/pdx-go) and come
along to the next meeting.

The "Birds of a Feather" (or, more aptly, "Gophers of a Feather") was a lot of
fun for everyone involved. We hope to see more of you there next year.

## In conclusion

{{image "osconreport/random.png" 800}}

Thanks to all the gophers that participated in OSCON. After the successes of
this year we look forward to more Go fun at OSCON 2015.
