GopherCon UK 2021
2021-10-25..2021-10-27
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, QA engineers, game developers
topics
sharding and consistent hashing; gRPC and protobuf communication; orchestration saga for multi-service changes; AWS Lambda destinations and GraphQL pagination; NATS JetStream messaging; mutex ordering and deadlock fixes; go/ast and go/types code generation; Ebiten game loop and hot reload; BDD acceptance testing with t.Run; Go coverage instrumentation and coverage.out; websocket fan-out server
| title | author | length |
|---|---|---|
| Go Large! | Bryan Boreham | 22m |
Estimates put Kubernetes at about ~500k lines of human-written Go and a group of Grafana backend projects Cortex, Loki and Tempo at ~300k lines combined… | ||
| Co-ordinating data changes in distributed systems | Tiago Mendes | 48m |
Asks how to make multi-service changes atomic and shows a working Go-based orchestration saga: a change orchestrator publishes commands to profile, vehicle and… | ||
| Building a small Language with Go for fun | Sina Siadat | 33m |
Builds a tiny language to add union (sum) types to Go and implements a handwritten top‑down parser (starts from an EBNF attempt and then throws it away) that… | ||
| Who Goes There? - building a serverless Github auditor | John Gregory | 58m |
A serverless GitHub auditor written in Go uses AWS Lambda, Serverless Framework, GitHub GraphQL and SQS to wake on schedule, page through org members, count… | ||
| Deadlocks: The Dark Side of Concurrency | Nick Craig-Wood | 47m |
Concurrent Go code from rclone produces real deadlocks involving mutexes and channels; the runtime detector rarely fires because some goroutines stay active… | ||
| Using NATS | Adelina Simion | 44m |
Form3 replaces SNS/SQS fanout with NATS and JetStream to cut tail latency and run lightweight event streaming in private data centers, processing 1M+… | ||
| Building an Indie Game in GO | Daniela Petruzalek | 44m |
Builds a playable prototype of an 80s card game "Travel Around the World" using Go and Ebiten, with assets as PNGs and card rules loaded from JSON… | ||
| Acceptance Tests, BDD & GO | Riya Dattani, Chris James | 01h 01m |
Argues that BDD reduces wasted rework by driving concrete examples into executable specs and shows a working Go workflow: write a failing acceptance spec with… | ||
| Browser environments from a system programmer’s perspective | Eleanor McHugh | 58m |
Mix of Go and browser JavaScript with concrete examples: a Go HTTP server that templates pages and generates interactive buttons, client-side fetch +… | ||
| Zero to OpenFaas in 60 months | Alex Ellis | 30m |
Project grows from scratch into a production serverless platform with a CLI that scaffolds handlers, builds container images, pushes them to a registry and… | ||
| Software development reimagined | André Eriksson | 32m |
Argues that cloud back ends are now composed, not written, and shows Encore analyzing Go code to generate infrastructure and boilerplate automatically… | ||
| Test coverage in Go, the whole package | Eleni Fragkiadaki | 43m |
Explains exactly how Go computes coverage by rewriting source and adding a generated counter struct, shows the coverage profile format (coverage.out) and an… | ||
| Semaphore | Foivos Filippopoulos | 46m |
Semaphore implements three independent Go operators that enable encrypted pod-to-pod routing, local load‑balanced access to remote services, and cross‑cluster… | ||
| Optimizing Go for Clouds | Bartłomiej Płotka | 01h 01m |
Kubelet metric collection wastes CPU and GC time by allocating 5k DTO metrics on every scrape, producing ~8 MB and ~200k heap allocations per collect; goal is… | ||
| How Go powered our elastic search | Stuart Murray | 55m |
Form3 replaces heavy Postgres reads with a production Go microservice that consumes SQS -> Elasticsearch events, maps JSONB-rich Postgres rows into… | ||
| Instrumenting GO Applications | Christopher Reeves | 40m |
Shows how to add tracing, logs and metrics to Go services using concrete code: stdout exporter then Jaeger UI for traces, HTTP propagation with a B3… | ||
| Distributed Facial Recon | Gergely Brautigam | 50m |
A distributed face‑recognition system built with Go services on Kubernetes using gRPC+protobuf contracts, NSQ queues and a Python dlib-based recognizer; images… | ||
| Creating a basic chat app | Tom Camp | 34m |
Builds a terminal chat using Go and the Ably pub/sub broker, authenticating with an API key/token, attaching to a topic named "chat", publishing lines and… | ||
| Scaling using Go | Adam Hicks | 27m |
Luno grows from a handful to ~70 backend engineers and ~2.2M lines of Go across 100+ microservices that deploy daily; builds with 940 imports still compile in… | ||
| nothing matches | ||