The proposal to enhance Go's HTTP router

A brief look at the proposed enhancements to the Go standard library HTTP request router, net/http.ServeMux: matching on HTTP method, and supporting wildcards in matched paths.

Scripting with Go: a 400-line Git client that can create a repo and push itself to GitHub

In which I rewrite my toy pygit client in Go to see how suitable Go is for simple scripts.

The issue with control flow in interpreters using the 'eval' pattern

The 'eval' pattern for interpreting simple languages

Share your feedback about developing with Go

Help shape the future of Go by sharing your thoughts via the Go Developer Survey

Common pitfalls in Go benchmarking

Go programmers have the good fortune of excellent testing and benchmarking tooling built into the standard library - in the testing package. However, benchmarking is hard. This isn't Go specific; it's just one of those things experienced developers learn over time. This post list...

Preview: ranging over functions in Go

A major Go language change proposal was published earlier this week: add range over int, range over func, and there's a good chance this change will make it into a future Go release. In this post I will discuss the motivation for this proposal, how it's going to work, and …

o11y Done Wrong — Lessons Learned from Monitoring Production Systems

Wishlist Endpoint Discovery

Learn how to use the recently-added Tailscale, DNS, and Zeroconf endpoint discovery in Wishlist, our SSH host directory.

Ten Years of “Go: The Good, the Bad, and the Meh”

Ten years ago, I wrote Go: The Good, the Bad, and the Meh. Way back in 2013, it made it to the front page of Hacker News and got over 400 comments on /r/programming. I don’t have analytics from back then, but I suspect it’s one of my more discussed pieces of writing,...