The Applied Go Weekly Newsletter logo

The Applied Go Weekly Newsletter

Archives
April 6, 2026

Over Night? Not Quite • The Applied Go Weekly Newsletter 2026-04-05

AppliedGoNewsletterHeader640.png

Your weekly source of Go news, tips, and projects

Over Night? Not Quite

Hi ,

Media loves overnight success. Something or someone unknown yesterday "suddenly" becomes a star. The truth is: there is no such thing as sudden success. Success comes in little steps; sometimes, even in unspectacular steps. Case in point: gaissmai/bart, the balanced routing table library I wrote about in the 2025-01-19 spotlight. Just a few days ago, goBGP, a border gateway protocol implementation, replaced an unmaintained prefix tree implementation by gaissmai/bart. This is the kind of steady growth that fuel every "overnight success."

If you want something that's started in the evening and finished next morning, try overnight oats.

–Christoph

Featured articles

How to implement the Outbox pattern in Go and Postgres - YouTube

A distributed app writes an update to its database and to a message queue. If one (and only one) of these two operations fails, the system state isn't consistent anymore.

In this video, Alex Pliutau walks through the problem with a practical Go code example, demonstrates how the outbox pattern fixes it, and briefly covers an alternative approach using PostgreSQL's write-ahead log and logical replication.

Background Jobs in Go with Asynq and Valkey

Background jobs that shall survive interruptions need some form of persistence and orchestration, or else data gets lost, duplicated, or mingled. Joseph Goksu decided to combine Valkey, a Redis fork, and Asynq, a task queuing library.

Garbage Collection: From First Principles to Modern Collectors in Java, Go and Python | Shubham Raizada’s Blog

Go has a quite advanced garbage collection mechanism. The idea of automated cleanup of unused memory is much older than Go. Much older. Shubham Raizada, a Java/Go/Rust polyglot, traveled back to the beginnings of garbage collection. Here is his travel report.

Podcast corner

079: WireGuard and don't mix social engagement w/ product validation

Dominic and Morten look back at various things that happened last week. (To them and otherwise.)

Cup o' Go | Go is epic at Epic! Chat with Creed Haymond about Go in gaming

How Epic's Online Services team achieved 48,000 requests per second with Go vs. 4,000 RPS with the previous system (same architecture!). Plus: Go security releases, type construction, chaos engineering, and a PDF library.

More articles, videos, talks

The Garbage Collector | Internals for Interns

More garbage. Not the article, mind you! I'm talking about the garbage that would accumulate in Go processes if the garbage collector didn't clean up relentlessly. Jesús Espino takes a look under the Go GC's hood.

Taint Analysis in gosec: Tracking Data Flow from Source to Sink

In 1989, Perl got a new language feature called taint checking. Insecure variables (that receive content form distrusted sources such as user input) are marked as suspicious. Variables that are updated from a suspicious variable also get marked as suspicious. A "taint checker" warns if any suspicious variable is used for executing risky actions, such as updating a database or calling OS functions. The developer then can add safety measures to verify the input.

This simple and effective security concept got added to gosec recently. Cosmin Cojocar examines how the taint checker works and when it's used.

Auto-Generate OpenAPI and Swagger UI in Go with Rivaas · Rivaas Blog

API specs and API code want to stay in sync. This won't happen naturally, though. There are two approaches to address this: Either generate the API spec from code or code from the spec. Rivaas' openapi package is of the first kind.

I Made a Terminal Pager | Leo Robinovitch @ The Leo Zone

Writing a terminal UI component isn't as trivial as it might seem. From controlling output with terminal escape codes to handling Unicode characters, there are quite some subtle details to consider. Leo Robinovitch shares the steps he took to implement a TUI viewport component.

Bullet Hell Demo

Escape the bullets! Move your player with the W, A, S, and D keys to avoid getting hit by a bullet. Built with Ebitengine.

Making Services With Go Right Way | Vladislav Yarmak

When you read this article, it's already to late.

Porting Go's strings package to C

After creating a Go-to-C translator and porting the io package to C, Anton Zhiyanov now turns to the strings package.

Every dependency you add is a supply chain attack waiting to happen

Ben Hoyt encourages his readers to rethink dependency update mechanisms in the face of increasing amounts of supply-chain attacks. TL;DR: turn off Dependabot. but in the end, the safest dependency is the dependency not added.

Let's talk about logging

Jonathan Hall started a new series about logging on his web-log.

Mapping Brazilian Cell Towers

How many cell towers are in Brazil?

Trivial Pursuit pros might be able to answer this from the top of their head, but Carlos Becker (of goreleaser fame) prefers to build a tool for that.

What's the ideal dispatch mechanism?

First aid when your switch statements grow unmangeably large. By Redowan Delowar.

Projects

Libraries

A fast, compact, immutable map from strings to uint64 values in Go

Fast string-to-uint64 lookup if all strings are known at setup time. (Immutability is the price for the extra speed.)

Tools and applications

GitHub - hyt4/envcheck · GitHub

Does your .env file contain variables not documented in .env.example? Does your .env.example file contain variables not used in .env? Does .env contain variables not used in your code?

envcheck answers all these questions, to help you keep your .env file consistent.

GitHub - MonsieurTib/service-bus-tui: A TUI explorer for Azure Service Bus · GitHub

View namespaces, resources, messages, and more of the Azure service Bus.

lyda/command-com: A DOS 3.3 inspired shell for Unix. - Codeberg.org

"Making a parser - even one this weird - is a cinch in Go."

GitHub - yuluo-yx/typo: Typo -- Auto-correct mistyped shell commands🛠️ · GitHub

Tired of hitting backspace more often than any other key on the keyboard? Fret no more: Typo auto-corrects all your typos.

Lisette — Rust syntax, Go runtime

Wot? Rust transpiles to Go? Not quite. Lisette is inspried by Rust's syntax and safety-first semantics. Embedded into Go's ecosystem, Lisette attempts to get the best of both worlds.

Completely unrelated to Go

Programming (with AI agents) as theory building

A core aspect of software engineering is to have a theory of how a given program works. Can LLMs build and maintain such theories?

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.