GopherCon 2020
2020-11-09..2020-11-13
-- online --
[GopherCon 2014, GopherCon 2019, GopherCon 2020, GopherCon 2021, GopherCon 2022, GopherCon 2023, GopherCon 2024, GopherCon 2025]
| title | author | length |
|---|---|---|
| Working with Errors | Jonathan Amsterdam | 18m |
Go 1.13 adds three new functions in the errors package and the %w verb for fmt, and shows how wrapping preserves an underlying error so programs can use… | ||
| Crossing the Chasm: Go for the Next Million Users | Carmen Andoh | 24m |
Go claims an estimated 2 million developers, nearly double in 24 months, and now runs in production for cloud and container infrastructure with killer apps… | ||
| Go is Boring... And That's Fantastic! | Jon Bodner | 26m |
Argues that Go’s omissions are deliberate tradeoffs: fewer language features produce faster compilation, simpler reasoning and less garbage for the GC, and… | ||
| Untangling the Monorepo: Moving to Go Modules | Dylan Bourque, Anthony Lee | 26m |
CrowdStrike untangles a nearly monolithic repo of ~400 services and libraries by incrementally extracting packages into separate modules, preserving git… | ||
| A Journey to Postgres Productivity with Go | Johan Brandhorst-Satzkorn | 47m |
Recommend Postgres with Go using a concrete stack: pgx driver plus pgx copy_from for bulk inserts that show an order‑of‑magnitude speedup in the demo… | ||
| A Rainbow of Gophers: Building A More Diverse Community | Kris Brandow | 52m |
Argues that measurable inclusion drives measurable diversity which improves problem solving, product quality, adoption and hiring; recommends three concrete… | ||
| Build and Test Caching in Go | Kevin Burke | 25m |
Explains how Go caches at the package-level .a files using a SHA-256 checksum of all inputs, stores cache entries in a filesystem split into 256 directories… | ||
| Pardon the Interruption: Loop Preemption in Go 1.14 | Austin Clements | 26m |
Go 1.14 adds asynchronous preemption that uses signals (SIGURG) to stop goroutines anywhere and performs conservative innermost frame scanning to find pointers… | ||
| Common Patterns for Bounds Check Elimination | Agniva De Sarker | 19m |
Shows concrete patterns that let the Go compiler drop bounds checks and measurably speed code: use dummy access to move checks outside loops, reslice to fixed… | ||
| Debugging Code Generation in Go | Jaana Dogan | 43m |
Shows exactly which toolchain steps run with go build -x, keeps the temporary work directory with go build -work, and prints compiler intermediate assembly… | ||
| Reordering 59 Million NYT Publishing Assets Using Go and BadgerDB | Doug Donohoe | 46m |
Reorders 59 million NYT publishing assets stored on a single Kafka partition into correct chronological and topological order using Go and BadgerDB, shrinking… | ||
| Typing [Generic] Go | Robert Griesemer | 34m |
Latest draft adds interfaces as constraints and type lists so generics use constrained type parameters, remain 100% backward compatible with no new keywords… | ||
| Anyone Can Be A Gopher! | Angelica Hill | 34m |
Anyone without a CS background can reach Go competency in about a year while working in a newsroom, learning Go, GCP, microservices and the http package, using… | ||
| How to Write a Self-Hosted Go Compiler from Scratch | Daisuke Kashiwagi | 31m |
Two handwritten Go compilers and a C-to-Go port produce working self-hosting compilers for a Go subset using GNU assembler and linker; the custom compiler… | ||
| Evolving the Go Memory Manager's RAM and CPU Efficiency | Michael Knyszek | 51m |
Recent runtime work (Go 1.12–1.14) fixes a broken best-fit tree via unit tests, adds a background highest-address-first scavenger that returns memory gradually… | ||
| The Quest for the Fastest Deployment Time | L Körbes | 49m |
Baseline Docker build plus deploy takes about 55 seconds locally and ~1–2 minutes remotely; switching to cached dependency layers or vendoring drops that to… | ||
| Functional Programming with Go | Dylan Meeus | 46m |
Argues that Go can use functional ideas — closures, currying via closures, tail recursion and pure functions — to get safer, more testable code while noting… | ||
| করো: Translating Go to Other (Human) Languages, and Back Again | Aditya Mukerjee | 34m |
A tool called করো (koro) implements Bengali keywords by extending Go’s lexer keyword map and disabling the ASCII-only checks so UTF‑8 tokens parse unchanged… | ||
| Deterministically Debugging Go Programs | Derek Parker | 47m |
Deterministic debugging captures a failing Go run once and replays it exactly using Delve + rr backend, turning intermittent failures that occur maybe 1-in-100… | ||
| Building an FM Radio Station with Go | Florin Pățan | 35m |
Goal is to push TMC traffic data into a car’s nav by building an FM station with Go: a Raspberry Pi (3/4), an Si4713 chip FM transmitter (I2C, RDS/RBDS, ~10 m… | ||
| Go is Not Just on Your Server, it's in Your Browser: Intro to Vugu | Brad Peabody | 56m |
Vugu compiles .vugu single‑file components into Go source with vugugen, then builds a WebAssembly .wasm that runs a Go runtime in the browser and synchronizes… | ||
| Write Once, Use Many: A Handy Package to Call Internal HTTP APIs | Michael Richman | 33m |
A reusable Go package called bitly service encapsulates all internal HTTP calls so one implementation handles service discovery, host selection via a hostpool… | ||
| Tracing Go Programs with eBPF! | Grant Seltzer Richman | 54m |
Builds a Go tracer that compiles and loads small eBPF C snippets via BCC, attaches an uprobe + bcc to a Go symbol (e.g. main.handler), and streams events back… | ||
| Implementing Faster Defers | Dan Scales | 25m |
Explains how Go implements open-coded defers by storing function pointers and args in stack slots and flipping a defer bits bitmap so most defers avoid runtime… | ||
| Optimizing Performance using a VM and Go Plugins | Travis Smith | 48m |
Builds a stack-based VM bytecode compiled from parsed ASTs and a runtime with object pools, plus a transpiler that emits Go and uses Go plugins… | ||
| Go Make Something Real – The Potential for Go on the Factory Floor | Zac Staples | 28m |
Fathom5 claims Go runs real-time on legacy industrial hardware by shipping three concrete tools: a serial proxy called Seymour / C-More net server that… | ||
| Building a Game Engine for 300 DEFCON Hackers to Smash | Alex Stockwell, Kevin Tyers | 37m |
A custom game engine and a set of stateless bots power a narrative CTF that runs over Slack using Go and GORM, handling 300+ players across 146 teams for a… | ||
| Safety Not Guaranteed: Calling Windows APIs using Unsafe & Syscall | Justen Walker | 46m |
Shows how to call Windows APIs from Go without cgo by using syscall and unsafe, golang.org/x/sys/windows and the make_windows_syscall generator, with concrete… | ||
| The Fundamentals of OpenTelemetry | Ted Young | 29m |
Builds a simple Go client/server from scratch while typing live, configures the OpenTelemetry SDK and the Lightstep distro, and proves context propagation… | ||
| Ask Me Anything with the Go Team | Julie Qiu, Rebecca Stambler, Carmen Andoh, Russ Cox, Kelsey Hightower, Sameer Ajmani | 48m |
An on-stage AMA details concrete work: the new pkg.go.dev discovery site (now open source), the gopls language server with biweekly releases and CI back to go… | ||
| What to Expect When You're NOT Expecting - Go Time Podcast Day 1 | Mat Ryer, Hana Kim, Derek Parker, Grant Seltzer Richman | 50m |
Practical debugging beats theory: quick printf/pretty-print with %+v often outpaces heavy tooling for fast feedback, but when stepping or changing state is… | ||
| The Secret Life of Gophers - Go Time Podcast Day 2 | Mat Ryer, Kris Brandow, Angelica Hill, Natalie Pistunovich | 01h 00m |
Panel covers concrete Go adoption stories: one company uses Go before 1.0, a full‑text search project firesearch.dev gets launched, and everyday tooling… | ||
| Go Panic! Game Show - Go Time Podcast Day 3 | Mat Ryer | 01h 01m |
A live Go-themed game show pits three contestants against category boards like Don't Call it Jeopardy!, "no-go" language features, GitHub stars, standard… | ||
| Lightning Talks Day 1 | Mark Bates | 44m |
Rapid updates and concrete demos: TinyGo hits llvm11 support, reports ~7,000 GitHub stars and 46 supported boards and shows Go running on Nintendo Switch… | ||
| Lightning Talks Day 2 | 01h 08m | |
Thirty-six seven-minute snapshots that matter: a homemade JSON search language built with a PEG/pigeon parser (prototype, incomplete); an open-source KCL 2.0… | ||
| nothing matches | ||