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 post1 on interface internals that
clarified my confusion. Th...
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...
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.
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...
Weak pointers and better finalization in Go 1.24.
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...
#544 — March 5, 2025
Unsub | Web Version
Go Weekly
Faster Go Maps with Swiss Tables — One of Go’s newest features is a revamped map implementation powered by a new hash table algorithm called Swiss Table that boosts map oper...
Although this blogpost was originally published in 2018, the concepts and principles discussed remain crucial for building efficient and performant multithreaded applications in Go now in 2025 (Go 1.24.0). As the Go ecosystem continues to evolve, understanding how the Go schedule...
If an existing tool is not straightforward to use, a software developer's natural reflex is to write a tailor-made CLI. Akash Joshi wrapped OpenAI's Whisper model into an intuitive command-line interface, packaged it with GoReleaser, and distributed it via Homebrew. Here are the...