Golang UK 2017
who it's for
Go developers, backend engineers, systems programmers, site reliability engineers, library authors, enterprise architects, frontend engineers
topics
Go realtime garbage collection; dep experimental dependency tool; go/token and go/ast static analysis; ptrace syscall tracing in Go; Gorilla WebSocket zero-copy upgrade; net/http server timeout hardening; runtime/trace and net/http/pprof tracing; SDK code generation with Stone; GopherJS with React frontends; Bazel builds for Go; go-swagger REST API generation; behavioural types for concurrency
| title | author | length |
|---|---|---|
| State of the Gopher Nation | Steve Francia | 35m |
Go achieves concrete gains: garbage collection pause times drop in production from hundreds of ms to under 1 ms GC pauses by Go 1.8; a dependency working group… | ||
| Static Analysis in Go | Takuya Ueda | 40m |
Step‑by‑step walkthrough of how to tokenise, parse and type‑check Go source to find actual occurrences of a type named "gopher" (demo finds it three times)… | ||
| The Beginner's Guide to Linux Syscalls | Liz Rice | 39m |
Shows how a Go println funnels down to the Linux write syscall by following code to the libc/syscall layer and reading the AX register which holds the syscall… | ||
| It doesn't have to be REST: Websockets in Go | Konrad Reiche | 38m |
WebSockets in Go let servers push synchronized state to many clients instead of polling, reducing thousands of HTTP requests and avoiding repeated credentials… | ||
| Production-ready Go | Ian Kent | 35m |
Go's net/http defaults are dangerous: the package-level HTTP client lacks a timeout (though Transport sometimes times out) and ListenAndServe omits server… | ||
| Go routines optimization | Guido Patanella | 43m |
Explains a concrete library: a resource manager with polling that implements a Resource interface (ID, Start, Available, GetProgress) and uses a heartbeat… | ||
| Fighting latency: the CPU profiler is not your ally | Filippo Valsorda | 38m |
CPU sampling misses wall‑clock latency caused by blocking so a service that looks CPU‑light still shows high request times; using runtime/trace +… | ||
| How to build an SDK in Go | Diwaker Gupta | 33m |
Dropbox’s Go SDK is auto-generated using a Stone code generator and powers a working command-line tool called dbx CLI, demonstrating codegen-first scalability… | ||
| Bringing Go to the Enterprise | Brian Ketelsen | 43m |
Covers concrete blockers for corporate Go adoption: lack of repeatable builds and versioned dependencies, missing enterprise adapters (LDAP, Oracle, SAP) and… | ||
| Making My First Go Contribution | Audrey Lim | 41m |
Adds live speaker-note support to the Go Presenter Tool, implemented by opening a child window with an iframe and syncing navigation via localStorage + iframe… | ||
| How we built and launched Gopherize.me | Ashley McNamara, Mat Ryer | 17m |
Built and launched in roughly five hours, Gopherize.me runs a Go backend on Google App Engine with a JavaScript/jQuery frontend, composes avatars from layered… | ||
| Going on the Road Less Bumpy | Vlad Galu | 28m |
A new PKI is built from scratch to serve IoT and replace a legacy CA stack, written in Go and interfacing with dedicated HSMs via a community P11 wrapper… | ||
| Betting on Go | Nic Jackson | 36m |
HashiCorp chooses Go in 2012 and ships Packer 2013 as the first Go product, then rewrites core infra so Consul, Nomad, Vault and Terraform run as single static… | ||
| Writing Beautiful Packages in Go | Mat Ryer | 39m |
Advice for package design focuses on concrete choices: keep the exported API small and obvious, prefer single-method interfaces and use io.Writer over os.File… | ||
| Concurrency Patterns in Go | Arne Claus | 32m |
Explains concrete concurrency rules and tradeoffs: CSP with channels and select handles about 90% of cases, showing fan-out/fan-in, closing semantics, and… | ||
| করো: Translating Go to Other (Human) Languages | Aditya Mukerjee | 44m |
Builds a real extension called Goro that swaps Go keywords for Bengali by changing the lexer and disabling a UTF‑8 keyword check, and adds a formatter koro… | ||
| Golang's Realtime GC in Theory and Practice | Will Sewell, Jim Fisher | 36m |
Go claims low-latency collection by running tricolor mark-and-sweep concurrently with the program, using write barriers to color new or updated objects gray so… | ||
| Creating interactive frontend apps with GopherJS and React | Paul Jolly | 47m |
Claim: write real browser UIs in Go and never hand-edit JavaScript. Uses GopherJS → JavaScript to compile nearly the whole Go language (goroutines, most std… | ||
| Building Go with Bazel | Paul Bellamy | 26m |
Bazel is presented as a reproducible, polyglot build system that vendors toolchains, hashes inputs with Merkle trees, and supports shared cache and remote… | ||
| Understanding concurrency with behavioural types | Nicholas Ng | 48m |
Extraction tool called Miego behavioral types converts Go SSA form using the SSA package into abstract communication types, then compiles those to an LTS and… | ||
| Building a RESTful API using go-swagger | Myles McDonnell | 34m |
Builds a REST API by writing a Swagger spec, using go-swagger to generate a Go server skeleton and client, and splitting spec files then stitching them with a… | ||
| Command Line Scripting with Templates | Mark Ryan | 44m |
Go templates get extended into a lightweight command-line scripting DSL with a new package published as t4tools that injects functions like… | ||
| Buffalo: Rapid Web Development in Go | Mark Bates | 45m |
Buffalo is a batteries‑included Go web ecosystem that wires together Gorilla mux, Plush templates, Pop for DB, Webpack/Yarn, Docker and a Buffalo build to… | ||
| How to correctly use package context | Jack Lindamood | 32m |
Go 1.7 context provides request-wide cancellation and scoped values; use context.Background at RPC entry, pass Context as the first arg or on a request struct… | ||
| Ruby to Go - What to expect when you switch | Irina Bednova | 18m |
Claim: Go code is less abstract and easier to trace than typical Ruby code. Concrete example: inspecting gocassa shows the time series list(start,end time… | ||
| Can you write an OS Kernel in Go? | Achilleas Anagnostopoulos | 42m |
Argues that Go can run at ring‑0 and demonstrates a working 32-bit x86 ring‑0 HelloWorld and running demos inside QEMU/VirtualBox. Uses cross‑compilation, GRUB… | ||
| Deep Learning with Go | Chris Benson | 50m |
Claims that you can train and deploy deep networks in Go but current reality is mixed: TensorFlow Go partial support lets trained Python graphs run in… | ||
| Embedding | Sean Kelly | 45m |
Claim: embedding is not inheritance and behaves differently: the spec only allows embedding a named type T or T (T not a pointer), selectors resolve to the… | ||
| nothing matches | ||