Not Magic • The Applied Go Weekly Newsletter 2026-04-26

Your weekly source of Go news, tips, and projects

Not Magic
Hi ,
I bet you've had this situation more than once: Something feels like magic, until you start looking closer, peeking under the hood, and dissecting the inner workings. All the magic disappears; the subject of your curiosity becomes understandable.
In this issue, I hope you'll have this moment not just once but thrice: First, when building namespaces to understand containerization; second, when inspecting Go's network poller; and third, when wrapping your brains around closures.
Enjoy!
–Christoph
Featured articles
Containers Are Not Magic: Namespaces From Scratch
You don't need Docker; you only need a Go compiler: Containerization is easier than you might think, thanks to some useful features of the Linux kernel.
The Network Poller | Internals for Interns
Go's synchronous networking API is a "comfortable illusion" (quoting the author) building upon sophisticated network polling that ensures no OS thread is actually blocked.
Go quirks: function closures capturing mutable references | Redowan's Reflections
When I learned about closures, I thought that capturing live, mutable context is the whole point. (Think of the ubquituous "counter closure" example.)
Now I learned that the term "closure" can mean different things to different people. For example, a closure could as well capture a snapshot of its context at creation time.
Moreover, live context capturing becomes tricky if concurrency enters the game.
This article covers closure "trickiness" and discusses ways to achieve intended behavior.
Podcast corner
082: Streaming, product updates, and marketing
Dominic and Morten discuss their experiences with video streaming technology and protocols, share updates and marketing challenges regarding their respective software products, and explore the current state of the Linux desktop, specifically Pop!_OS and accessibility. And they mention Go on several occasions.
Cup o' Go | Builds, Validation, Web3, CORS, Typescript-- wait this is a Go show?! with Paweł Zaremba
The "Where is Johnathan?" episode! Guest host Paweł Zaremba joins Shay Nehmad to discuss a new Go build flag proposal, data validation strategies, community meetups like ETHWarsaw, and the Go-written TypeScript 7.0 Beta.
More articles, videos, talks
Automated Go test coverage production | DoltHub Blog
Did you know that Go supports instrumentation for code coverage not just in tests but also in normal binaries? When the DoltHub team found that out, they set out to collect test coverage from all their unit and integration tests into a single graph.
Algotutor: Using AI to Actually Get Better at Algorithms
I guess we will have to get used to this style of learning: No more linear reading, no more wading through documentation and reference files. Just ask your tutor bot, and it'll (hopefully) guide you through your lessons.
Testify is making your Go tests worse
Convenience versus clarity, or: the hidden cost of easy reading.
When Code Guarantees Are Checked
Compile-time checks or run-time checks? Or some entirely different kind of check?
On the various occasions for verifying code.
Accepted proposal: UUID in the Go standard library
Go gets a uuid package. And the uuid package gets a closer look in this article.
Choosing a Go Logging Library in 2026 · Dash0
No one has ever been fired for choosing the standard slog library. It has most features you'd need for various logging purposes, and it doesn't introduce external dependencies (except for 3rd-party slog handlers, if you choose to use one).
This being said, for some edge use cases, looking over the fence could be worthwhile.
Building a Tiny TCP Port Scanner - Go monk
Scanning TCP ports is a piece of cake: Connect to a port, check the response, disconnect.
Well, if it just was that easy...
Debugging WASM in Chrome DevTools
Debugging doesn't only work at source code level. Eli Bendersky digged into generated WASM code using Chrome's debugger.
Projects
Tools and applications
alexandre-daubois/ember: 🔥 Real-time terminal dashboard for Caddy servers, with built-in FrankenPHP support
Did you know that Caddy, the one-stop shop for all web server needs, exposes rich metrics by default? The only thing that's missing is a dashboard that can track those metrics... until now.
funinkina/deadenv: Dead simple and secure way to manage your .env
deadenv is the dead end for .env files, replacing them with encrypted storage based on OS-native services (Keychain, Keyring, Credential Manager).
