Nil comparisons and Go interface

Comparing interface values in Go has caught me off guard a few times, especially with nils. Often, I’d expect a comparison to evaluate to true but got false instead. Many moons ago, Russ Cox wrote a fantastic blog post on interface internals that clarified my confusion. Thi...

Nil comparisons and Go interface

Comparing interface values in Go has caught me off guard a few times, especially with nils. Often, I’d expect a comparison to evaluate to true but got false instead. Many moons ago, Russ Cox wrote a fantastic blog post on interface internals that clarified my confusion. Thi...

Nil comparisons and Go interface

Debug tricky nil comparisons in Go interfaces. Understand dynamic types, type assertions, and use reflect for generic nil checking.

I'm on Fallthrough: An Exploration of APIs, Versioning, & HTTP

Earlier this year, I was invited to join the wonderful Fallthrough podcast to talk about APIs, which would be my first appearance on Fallthrough. As noted in I'm on Fallthrough: Patching Problems with Persnickety Proxies Purveyed by Paternalistic Princes, the episode on APIs was...

Go 1.24.1-1 and 1.23.7-1 Microsoft builds now available

A new release of the Microsoft build of Go including security fixes is now available for download. The post Go 1.24.1-1 and 1.23.7-1 Microsoft builds now available appeared first on Microsoft for Go Developers.

Stacked middleware vs embedded delegation in Go

Middleware is usually the go-to pattern in Go HTTP servers for tweaking request behavior. Typically, you wrap your base handler with layers of middleware—one might log every request, while another intercepts specific routes like /special to serve a custom response. However, I o...

From unique to cleanups and weak: new low-level tools for efficiency

Weak pointers and better finalization in Go 1.24.

Stacked middleware vs embedded delegation in Go

Middleware is usually the go-to pattern in Go HTTP servers for tweaking request behavior. Typically, you wrap your base handler with layers of middleware—one might log every request, while another intercepts specific routes like /special to serve a custom response. However, I o...

Stacked middleware vs embedded delegation in Go

Compare middleware stacking with embedded delegation in Go HTTP servers. Learn when to override ServeHTTP for simpler request handling.

When it’s worth to write low-quality code

Quick Takeaways High-quality code is mainly about keeping good iteration speed over time - can you add features without breaking what works? Not all code needs to be high quality - focus your efforts on the code that’s most important, changes often, or creates the most val...