# Golang UK 2015
9 Oct 2015
Tags: conference, golanguk
Summary: Reporting from GolangUK 2015, the first London Go conference.

Francesc Campoy

##

On August 21st the Go community gathered in London for the first edition of
[Golang UK](https://golanguk.com). The conference featured two parallel
tracks and nearly 400 gophers attended.

.image gouk15/gouk.jpg 300 583

The conference started with the opening keynote by [David Calavera](https://twitter.com/calavera)
called Crossing the Language Chasm ([video](https://www.youtube.com/watch?v=JPVRnEZ4v_w&list=PLDWZ5uzn69ezRJYeWxYNRMYebvf8DerHd))
and continued with two concurrently executed [tracks](http://golanguk.com/schedule/).

Main track:

  - Stupid Gopher Tricks,
    by [Andrew Gerrand](https://twitter.com/enneff)
    ([video](https://www.youtube.com/watch?v=UECh7X07m6E&list=PLDWZ5uzn69ezRJYeWxYNRMYebvf8DerHd))
  - Complex Concurrency Patterns in Go,
    by [Evan Huus](https://twitter.com/eapache)
    ([video](https://www.youtube.com/watch?v=2HOO5gIgyMg&list=PLDWZ5uzn69ezRJYeWxYNRMYebvf8DerHd))
  - Code Analysis [no reading required],
    by [Francesc Campoy](https://twitter.com/francesc)
    ([video](https://www.youtube.com/watch?v=oorX84tBMqo&list=PLDWZ5uzn69ezRJYeWxYNRMYebvf8DerHd))
  - Go kit: a toolkit for microservices,
    by [Peter Bourgon](https://twitter.com/peterbourgon)
    ([video](https://www.youtube.com/watch?v=aL6sd4d4hxk&list=PLDWZ5uzn69ezRJYeWxYNRMYebvf8DerHd))
  - Dependency Management Conundrum,
    by [William Kennedy](https://twitter.com/goinggodotnet)
    ([video](https://www.youtube.com/watch?v=CdhucJShJU8&list=PLDWZ5uzn69ezRJYeWxYNRMYebvf8DerHd))

Side track:

  - Building APIs,
    by [Mat Ryer](https://twitter.com/matryer) ([video](https://www.youtube.com/watch?v=tIm8UkSf6RA&list=PLDWZ5uzn69ezRJYeWxYNRMYebvf8DerHd))
  - Building a Bank with Go,
    by [Matt Heath](https://twitter.com/mattheath)
    ([video](https://www.youtube.com/watch?v=cFJkLfujOts&list=PLDWZ5uzn69ezRJYeWxYNRMYebvf8DerHd))
  - CockroachDB: Make Data Easy,
    by [Ben Darnell](https://twitter.com/bendarnell)
    ([video](https://www.youtube.com/watch?v=33oqpLmQ3LE&list=PLDWZ5uzn69ezRJYeWxYNRMYebvf8DerHd))
  - Understanding memory allocation in Go,
    by [Dean Elbaz](https://twitter.com/DeanElbaz)
    ([video](https://www.youtube.com/watch?v=zjoieOpy5hE&list=PLDWZ5uzn69ezRJYeWxYNRMYebvf8DerHd))
  - Whispered Secrets,
    by [Eleanor McHugh](https://twitter.com/feyeleanor)
    ([video](https://www.youtube.com/watch?v=ViBRx-F4Z2U&list=PLDWZ5uzn69ezRJYeWxYNRMYebvf8DerHd))

Finally [Damian Gryski](https://twitter.com/dgryski)
took the stage for the closing keynote
([video](https://www.youtube.com/watch?v=IiSyFc10Jj0&list=PLDWZ5uzn69ezRJYeWxYNRMYebvf8DerHd)),
giving an overview of how the Go community has evolved over time and hinting
to what the future might look like.

On the day before the conference,
[William Kennedy](https://twitter.com/goinggodotnet)
gave a full day Go workshop.

It was a great conference, so congratulations to the organizers and see you next year in London!
