GopherCon UK 2019
2019-08-21..2019-08-23
London, United Kingdom
[GopherCon UK 2019, GopherCon UK 2021, GopherCon UK 2022, GopherCon UK 2023, GopherCon UK 2024, GopherCon UK 2025, GopherCon UK 2026]
who it's for
Go developers, backend engineers, platform engineers, site reliability engineers, tooling engineers, engineering managers, embedded developers
topics
gRPC-Gateway JSON proxy; go code generation with go/packages; golang.org/x/tools/go/analysis; pprof mutex profiling; sync.Locker contention sharding; Prometheus histogram observations; Kubernetes sidecar containers; WebAssembly with Go; TinyGo for microcontrollers; one-million websocket connections; net.Conn custom implementation; outbox pattern for reliability
| title | author | length |
|---|---|---|
| GopherCon UK + GoTimeFM + LondonGophers Live | Mark Bates, Mat Ryer | 01h 17m |
Live Go Time records in front of ~100 studio-audience attendees and 3 special guests, streaming video and taking live questions; the format succeeds enough to… | ||
| Quicksilver How Cloudflare Controls it's Network Using Go | Ricardo Jimenez | 28m |
Cloudflare describes Quicksilver, a distributed datastore implemented in Go that serves as the control plane for its global infrastructure across 165… | ||
| From Chaos to Domain Driven Design | Joan López de la Franca Beltran | 30m |
A Go side project named counter side project exposes why flat packages cause globals, cyclic dependencies and untestable business logic; author rebuilds it… | ||
| Tackling Contention: The Monsters Inside the 'sync.Locker' | Roberto Clapis | 26m |
Shows how pprof and the mutex profile expose that a simple increment loop spends >95% of time waiting on sync.Locker, and how trace regions pin down tail… | ||
| Writing REST Services for the gRPC curious | Johan Brandhorst | 31m |
Demonstrates a reverse proxy that translates JSON HTTP calls into protobuf gRPC requests using the gRPC-Gateway, generated by a protoc plugin; generates an… | ||
| Write Less (Code), Generate More | Paul Jolly | 30m |
Argues that Go code generation reduces repeated boilerplate by example: builds a simple generator that uses go/packages and AST/type info to find all constants… | ||
| Using and Writing Go Analyses | Michael Matloob | 26m |
Shows how to use the Analysis API (golang.org/x/tools/go/analysis) to write an analyzer that finds a real bug: passing a pointer where a value is expected and… | ||
| Robotics with Go is a Breeze | Gergely Brautigam | 42m |
Demonstration shows building a face-tracking and gesture control drone using Gobot + GoCV on a Tello with FFmpeg for video and optional TinyGo for… | ||
| Productionise any Application in Kubernetes Using Sidecar Containers | Davy Jones | 27m |
Demonstrates adding sidecar containers to a running app to fix failures without changing code: deploys an HAProxy sidecar (exposes Prometheus metrics scraped… | ||
| Optimizing Go Code Without a Blindfold | Daniel Martí | 29m |
Shows concrete tools and numbers: raw benchmarks fluctuate up to 4–5% noise so tiny wins like 1.3% disappear, the workflow uses benchstat and benchcmd/benchcmp… | ||
| Monolith Decomposition | William Clarke | 31m |
Deliveroo faces a slow page caused by an ORM producing a 23-table join, so the team extracts that endpoint into two Go services: a Kafka consumer and an API… | ||
| Lost in Transaction? | Bernd Rücker | 31m |
Shows that cross-resource ACID is impractical for DB + message systems, rejects two‑phase commit, and recommends concrete patterns: use the outbox pattern for… | ||
| Lock-free Observations for Prometheus Histograms | Björn Rabenstein | 27m |
Shows how Prometheus histograms get near lock-free updates by using the atomic package to write into a hot buffer while reads snapshot a cold buffer, switching… | ||
| Improving Dependencies for Everyone | Aaron Schlesinger | 32m |
Go modules plus a purpose-built module download API let proxy servers cache versioned code as immutable zip files so builds survive repo deletion, git push -f… | ||
| Impossible Go! | Gautam Rege | 44m |
A sequence of concrete Go surprises: a slice shares memory with its array until an append crosses slice reallocation after capacity exceeded and silently… | ||
| Implementing a Search Index | David Hernandez | 26m |
Describes building a Go-based search index that converts text to vectors (using pretrained CSV word2vec models and TensorFlow Universal Sentence Encoder)… | ||
| Going Serverless For Fun and Profit | Florin Pățan | 31m |
Shows how to go from empty repo to working serverless service in under 30 minutes using Go, Terraform and cloud providers: Terraform reproducible deploy, go… | ||
| Going Infinite: Handling 1 Million Websocket Connections in Go | Eran Yanay | 29m |
Shows how a Go HTTP/WebSocket server moves from a goroutine-per-connection design to an epoll-based event loop that drops goroutines, swaps the websocket… | ||
| Go as a Scripting Language in Linux | Ignat Korchagin | 23m |
Claim: Go is usable as a practical Linux scripting language by pairing a small interpreter shim with kernel-level registration. Demonstration shows go run… | ||
| Gio Cross Platform GUI Programming for Mobile, Desktop, WebAssembly | Elias Naur | 37m |
Gio is an immediate mode GUI library that claims to let you write pure Go apps that run on Android, iOS/tvOS, macOS, Linux, Windows and runs on WebAssembly… | ||
| Fun With Pointers | Daniela Petruzalek | 33m |
Shows that pointers in Go are values copied on call so mutating a pointer itself requires a pointer-to-pointer; demonstrates the common bug where range copies… | ||
| Experimenting with Golang and Webassembly | Jorge Marin | 29m |
Compiles Go to WebAssembly using the Go toolchain (example command go build -o main.wasm inside a Docker container), loads the runtime shim wasm_exec.js from… | ||
| Energy Implications of Your Go code | Mahdi Jelodari | 32m |
Edge devices spend ~65% of energy on data movement so experiments use Intel RAPL energy counters and Go tooling (go test bench, runtime/trace) to compare three… | ||
| Dr Jekyll and Mr Hyde, Embracing the Dual Nature of State | Corver Roos | 31m |
Luno pairs mutable SQL rows with an immutable event table and enforces lifecycle transitions with a state‑machine layer so every update writes exactly one… | ||
| Building a net Conn Type From the Ground Up | Matt Layher | 23m |
Implements a Linux AF_VSOCK net.Conn and net.Listener using raw BSD socket syscalls (socket, bind, connect, accept4), the golang.org/x/sys/unix package and OS… | ||
| Finding Dependable Go Packages | Julie Qiu | 26m |
Describes a new site that aggregates concrete signals so choosing a Go package is less guesswork: license, release history, per-version docs, imports and… | ||
| Building APIs in Go The Stack Without a Framework | Naga Sowjanya Sutherland | 21m |
Builds a small versioned REST CRUD API for a nutrition service (fruits, grains, vegetables) using plain net/http handler funcs and a gorilla/mux router… | ||
| Advanced Testing Techniques | Alan Braithwaite | 28m |
Shows concrete patterns: three levels of dependency injection for SQL (inject DSN, sql.DB, or a custom store interface), a practical way to override time.Now… | ||
| A Go Security Journey | Adrian Hesketh | 35m |
Product moves from Node to Go and runs backend logic and robot integrations in Go, with a serverless migration in half a day using an Algernon adapter to turn… | ||
| nothing matches | ||