Advanced Go is a class for any intermediate-level developer who has some experience with other programming languages and wants to learn Go. This class provides an intensive, comprehensive and idiomatic view of the language. We focus on both the specification and implementation of the language, including topics ranging from language syntax, Go’s type system, concurrency, channels, testing and more. We believe this class is perfect for anyone who wants a jump start in learning Go or who wants a more thorough understanding of the language and its internals. More details or Buy tickets
Ultimate Web is a class for any Go developer who wishes to learn how to build robust and well tested HTTP based applications in Go. This class provides an intensive, comprehensive and idiomatic view build Web, SOA, and API applications using Go. We believe this class is perfect for anyone wishing to build scalable, fast, and highly concurrent HTTP based applications. More details or Buy tickets
The pre-conference social is a traditional style pubcon, open to anyone, where conference attendees and locals can meet up before the conference to network and socialise.
More details »
Please bring a copy of your ticket either printed or on a mobile device.
The conference team welcome all our delegates, speakers, and sponsors to the conference and provide an overview of the day's events to come.
Whether for internal use, or destined for open-source stardom, writing good packages with clean and clear APIs will greatly increase the chance that the code is used and reused. Explore best practices, goals, and idioms that help make beautiful packages.
Go's GC is optimised for low latency applications. In this talk we'll see how it works (the tricolor algorithm), why it works (achieving such short GC pauses), and most importantly, whether it works (benchmarking these GC pauses, and comparing them with other languages).
Light refreshments will be served in the exhibition hall where you will also be able to network with fellow delegates and our sponsors.
Like most programming languages, Go uses English keywords. But Go's unique approach to byte and string handling makes it the ideal candidate for a universal programming language that can be localized to allow English-speaking and non-English speaking developers to collaborate on the same projects.
Go is a great language for building server applications but can you use it to write an OS kernel? Let's talk about the challenges involved in writing, compiling and linking Go code that runs in Ring-0 and code a simple "Hello World" demo in Go that runs inside QEMU.
We all know that go comes with great concurrency tools like go routines and channels. But is this really everything? This session starts with an overview of common concurrency patterns and ends with best practices on lockless programming that won't let your head explode.
Tired of Makefile hacks? Bazel offers fast, reproducible builds for software of any size. Why is it better than go build? Bazel makes polyglot projects easy, has remote build workers, and shared caching. Get started building Go projects, learn key concepts, and get ready to turbocharge your build.
A buffet lunch will be served in the exhibition hall where you will also be able to network with fellow delegates and our sponsors.
This talk discusses HashiCorp's journey with Go from its infancy to the mature, production-ready language it has become today. We will discuss the decision-making process which ultimately landed on Go, the benefits we’ve gotten out of the standard library, the limitations we’ve hit along the way.
Learn how to define a RESTful API by writing a Swagger specification and using go-swagger to generate a go server skeleton and client package. This talk focuses on developer productivity from inception to production, detailing the journey from the first line of code through to the production of a fully tested Docker image ready for deployment.
Embedding. It sure is weird, isn't it? it's unlike traditional inheritance, and it can be uncomfortable at first. But it does have a lot of positives to it that might not be obvious at first. In this talk, we'll go over highlights and pitfalls of embedding, and some interesting ways to use it.
Fed up of Javascript? Do you pine for Go’s simplicity and fantastic tooling? Learn how to painlessly create interactive UIs in your favourite language… and never write a line of Javascript again!
Light refreshments will be served in the exhibition hall where you will also be able to network with fellow delegates and our sponsors.
"When we talk about a 'fast' service we often don't mean one that can process 500MB/s per core, but one that can respond in <5ms. However, many causes of latency are invisible to pprof: network operations, disk reads, locks, channels, scheduling. Let's see how to use the new tracer to profile them."
Go 1.7 introduced package context to the standard library. Using context is a very powerful way to orchestrate goroutine cancelation and debugging information during a request. This talk lays the foundation of best practice around how to use this package.
Want to contribute to Go but don't know how? Neither did I when I hacked a solution for the Go Presenter Tool. Learn about my motivations, how I approached the problem with a beginner's mind, figured out Gerrit, how it's like having my code reviewed by the Go team, and how I finally got it merged.
The conference social is open to all conference attendees and gives you a chance to relax and meet other delegates after a big day of learning. More details »
Please bring a copy of your ticket either printed or on a mobile device.
The conference team welcome all our delegates, speakers, and sponsors to the conference and provide an overview of the day's events to come.
Goroutines can become the star or the bottleneck of your application. Learn how to select the best approach for reaching efficient concurrency by analyzing bottlenecks related to go-routines, comparing resource utilization, locks, queuing and sequential processing.
Put the fun back in writing Go web applications using the Buffalo framework. A Ruby on Rails inspired, idiomatic, web framework written in Go. Fun, Fast, and easy!
Light refreshments will be served in the exhibition hall where you will also be able to network with fellow delegates and our sponsors.
Tools like `go package` provide static analysis. This session shows step by step how to use it. This session makes you that you can start to use static analysis for creating tools which are useful for your daily development, such as a linter and a refactoring tool which can be customized for your project.
Go's template language is often used to enable scripting in command line tools. In practice, however, it can be difficult to take advantage of these scripting capabilities. This talk will explore why this is, propose some best practices and describe a new package designed to make scripting easier.
When you’re new to Go, it’s easy to build and deploy production systems quickly - and learn the hard way what ‘production ready’ means. This is a rundown of the things you really need to care about.
You’ve heard about self-driving cars, self-organizing drone swarms, conversational interfaces, and emotion recognition. That’s all ‘deep learning’ - a powerful AI taking the world by storm! In my talk, I’ll show you how to build ‘deep learning’ models with Go to solve complex real-world challenges.
A buffet lunch will be served in the exhibition hall where you will also be able to network with fellow delegates and our sponsors.
"Dropbox offers a well documented API with SDKs in 7 different languages including Python and Java, but not Go (which is used heavily within Dropbox). In this talk, I'll share my experiences developing a Go SDK for Dropbox: lessons and best practices for building SDKs in Go."
An overview of the differences between the two languages from a seasoned Rubyist and a complete Go newbie perspective. What to expect from your everyday coding when you switch to Go.
The speed of Go should make us reconsider well estabilshed paradigms. When developing APIs it is practically impossible not to mention REST yet many applications would benefit from real-time interactivity. There are different WebSocket and WebSocket emulation implementations in the Go ecosystem. This talk will give you headspace to consider WebSockets as an alternative communication protocol for your application by giving an overview of the current state of the art of WebSockets in Go.
Concurrent programming is difficult. This talk is about applying programming languages & concurrency research, specifically behavioural types as an abstraction, to verify concurrent Go programs. The talk covers what behavioural types are and how they can be used to reason in Go's concurrency model.
Light refreshments will be served in the exhibition hall where you will also be able to network with fellow delegates and our sponsors.
Don’t think you’ve ever made a syscall? Trust me, you have! In this talk we’ll explore what syscalls are, how they work and what you can do with them, with a good measure of live-coding demos to keep things real.
"In this presentation Vlad Galu, VP of Engineering at GlobalSign, describes the experience of basing a greenfield project on Go, the build-up and the evolution of the team and GlobalSign's next generation PKI platforms along with the wider ecosystem."
In this talk I'll share my unique experiences as a trainer and author bringing Go to enterprise companies. We'll talk about what works well, what needs improvement, and what we can do as a community to foster Go adoption in more companies. In 2016 I quit my job and set out to train the world on how to use Go and Kubernetes. Over the course of the last 18 months I've learned a lot of things about Go, and I want to share them with you in this talk.
Mat Ryer has organised a group trip to Bletchley Park. More info »
Women Who Go London have organised a free Ultimate Go workshop with Bill Kennedy from Ardan Labs. More info »