The Applied Go Weekly Newsletter logo

The Applied Go Weekly Newsletter

Archives
May 17, 2026

It Works. (But Why?) • The Applied Go Weekly Newsletter 2026-05-17

AppliedGoNewsletterHeader640.png

Your weekly source of Go news, tips, and projects

It Works. (But Why?)

Hi ,

In this week's featured articles, you can inspect the Go compiler, examine error handling gone wrong, and dissect a simple archive format.

But why should you?

Too often, we just expect that things just work. But understanding why these things work (or why they break) gives us more than just temporary satisfaction. Have you ever had a mental picture of a machine, an engine, or an algorithm in your head only to discover that it works quite differently in reality? Knowing the real inner workings helps to use, apply, or modify this machine, engine, or algorithm properly.

That's why this newsletter issue invites you to open the black box, to look under the hood, to peek behind the curtains, or whatever you want to call it. There is no goal attached to curious exploration; nothing to achieve besides gaining insights. The payoff may come later, for example, when you have to decide about a design or an implementation, or when you troubleshoot an intricate bug, and one of the insights you gained earlier pops into your mind.

Stay curious!

–Christoph

Featured articles

The Go Compiler: A Deep Dive Into How Your Code Becomes a Binary

Everyone who knows how the Go compiler works, raise your hands! Everyone else, read this.

Error handling in Go: Common pitfalls

When one if statement accidentally checks another if statement's error condition instead of its own...

A tour of txtar

What's to be said about a dead-simple text archive file format? Quite a lot.

Podcast corner

085: Morten received an ~acquisition offer, Dominic got his 1st paying customer

Another week in two solopreneurs' lives. Dominic is days away from onboarding his first real paying customer (a high-volume bookseller switching away from Shopify) while Morten gives his Crate Operator project some TLC (tender love and care).

Quote of the Week: On Software And Bakery

Just because anyone can build software now doesn't mean software is dead. Anyone can bake bread in their home right now, yet 99% of us still choose to buy it from someone else. Simple products are complex! I will always be happy to pay someone to handle the nuances.

– Farza 🇵🇰🇺🇸

(via)

More articles, videos, talks

Securing CI/CD for an open source project: lessons from Cilium

...where one of the lessons is about why Cilium vendors all their Go dependencies.

How I Built a Real-Time PostgreSQL WAL Reader in GO - DEV Community

What happens after your code sends a SQL statement to a PostgreSQL instance? pgstream is kind of a live stream of the write-ahead log that makes every change visible.

How I built the core loop of a browser multiplayer game

The eternal problem of browser-based games: every server roundtrip takes an unpredictable amount of time. How to make the game flow still feel smooth? Julien Singler shares the strategy he chose for his Go+Svelte-based game project "HiddenWars."

The GoLand 2026.2 Early Access Program Has Started

When people keep subscribing to a commercial Go IDE despite open source alternatives, the GoLand folks must be doing something right!?

Don't hypothesize; try it out. The EAP pre-release can be tested for free until the final release. (No, that's not a paid ad. I just reckon some folks might want to test GoLand but don't know about the EAP program yet.)

What if the browser was the server?

Every web app has a fundamental problem to solve: Its logic lives partly on the server partly on the client. If you move all logic to the server, your app pays with roundtrip delays, resulting in a sluggish UI.

So why not try the opposite?

Allowlisting Config Capabilities by Embedding Rye in Go | Rye blog

Would you use a general-purpose language as a config language? Probably not: too powerful, too dangerous. Even dedicated configuration languages may provide too powerful constructs like conditions, loops, or even function definitions.

Rye, a functional language implemented in Go, has a mechanism that wipes all your concerns away: whitelisting. When embedded in a Go project, the Go code can precisely enable language features like "+" and "*" (to enable calculating values) while blocking everything else. Smart!

Fuzzing fork of go toolchain

gosentry taps into elevated fuzz testing features provided by LibAFL, a Rust-based fuzzing library. You won't even need to rewrite your fuzz tests for using gosentry, nor give up the familiar go test -fuzz command. gosentry makes go test -fuzz use LibAFL by default.

Starting Systems Programming, Pt 1: Programmers Write Programs (2025)

Efron Amber Licht takes you on a system programming journey. In this article (the first of a series of four), he uses a lot of small (as in: <100 loc) Go tools (all code listed in the article) to read and write files—both text and binary files.

Projects

Libraries

btype: B-tree based collection types for Go

Build any collection type you want. A B-Tree is the perfect working horse for collection types like maps, sets, queues, stacks, and tables. The btype package even claims to be "generally faster than the state of the art btrees for Go, Rust, and C++."

GitHub - varunbpatil/typst-go-wasm: Go library for PDF generation from Typst templates, powered by WebAssembly · GitHub

Typst is a powerful layouting language (think "LaTeX for modern times") but Go bindings of its API are few and far between. Especially CGO-free ones. typst-go-wasm uses WebAssembly to avoid the CGO route.

Tools and applications

let-go: Almost Clojure written in Go

An "Almost Closure" interpreter! And what's your excuse for pretending to write in Go?

dortanes/prox: Modular reverse proxy with config-driven routing and L4/L7 dispatching.

After struggling with Nginx, HAProxy and Caddy, the author decided to write their own reverse proxy to address complex routing requirements.

ozgurcd/gograph: A fast, local-only CLI tool to generate repository structures and improve IDE context awareness for Go codebases.

Help your poor AI agent find the relevant code in your Go project! gograph parses the AST and generates a graph of your repository, so that the agent doesn't have to frantically grep its way through your source code files.

codehamr/codehamr: A minimal, local-first coding agent for the terminal.

codehamr is a coding agent written in Go that leans heavily towards the minimalist end of the coding agent range.

Minimalist doesn't mean it has no killer feature: codehamr imposes a strict "Get Your Shit Done" loop onto local (<=30B) LLMs that tend to hallucinate success. The GYSD loop requires a provable indicator of success, such as the positive output of a testing tool. Only then it lets the LLM declare its work done.

Completely unrelated to Go

What Is Code?

Code is human-written instructions for a machine, right? Wrong. Or, not entirely wrong, but that's only one aspect of source code. Don't neglect the others!

Happy coding! ʕ◔ϖ◔ʔ

Questions or feedback? Drop me a line. I'd love to hear from you.

Best from Munich, Christoph

Not a subscriber yet?

If you read this newsletter issue online, or if someone forwarded the newsletter to you, subscribe for regular updates to get every new issue earlier than the online version, and more reliable than an occasional forwarding. 

Find the subscription form at the end of this page.

How I can help

If you're looking for more useful content around Go, here are some ways I can help you become a better Gopher (or a Gopher at all):

On AppliedGo.net, I blog about Go projects, algorithms and data structures in Go, and other fun stuff.

Or visit the AppliedGo.com blog and learn about language specifics, Go updates, and programming-related stuff. 

My AppliedGo YouTube channel hosts quick tip and crash course videos that help you get more productive and creative with Go.

Enroll in my Go course for developers that stands out for its intense use of animated graphics for explaining abstract concepts in an intuitive way. Numerous short and concise lectures allow you to schedule your learning flow as you like.

Check it out.


Christoph Berger IT Products and Services
Dachauer Straße 29
Bergkirchen
Germany

Don't miss what's next. Subscribe to The Applied Go Weekly Newsletter:
Share this email:
Share on Twitter Share on LinkedIn Share on Hacker News Share on Reddit Share via email Share on Mastodon Share on Bluesky
c.im
LinkedIn
Powered by Buttondown, the easiest way to start and grow your newsletter.