Write, Build, Love, Repeat • The Applied Go Weekly Newsleetter 2025-04-20
Your weekly source of Go news, tips, and projects
Write, Build, Love, Repeat
Hi ,
Programming languages can be like a virus. Some cause a short fever that quickly vanishes, some may infect your for a lifetime. When you came across Go, was it love at first sight? Or did you slowly adapt, learning to love Go's idioms while unlearning the habits the previous language burned into your brain? Either way, you're reading these lines, so it seems you're now quite happy with Go.
My way to Go is paved with programming languages. All were interesting for some time, but none had that particular something that made me stick with it.
Except Go.
Go had this "something". In retrospect, this "something" consists of no less than 14 reasons, which the Spotlight section lists links to. But first, read about three aspects that contribute to making Go what it is today: contexts, concurrency, and performance.
Share the love! –Christoph
Featured articles
Gist of Go: Context
Read about—and play with!—contexts for cancelling and timing out concurrent operations. Thanks to Codapi.org (a project by the author, Anton Zhiyanov), all code examples are executable from right within the article.
Most People Overlook Go’s Concurrency Secrets | by Aryan | Mar, 2025 | Cubed
If Go's concurrency was a deck of Tarot cards...
How to Easily Handle 200k RPS with Golang | by Nikita Burov | Apr, 2025 | Medium
How to achieve maximum performance for a recommendation feed service by using fasthttp and in-memory storage.
Podcast corner
go podcast() 057: I unite with another technical professional, and we talk about being blind in tech (part 2)
Part 2 of Ivan Fetch and Dominic St-Pierre exploring the reality of IT work without vision - confronting what many developers would consider a nightmare.
Fallthrough: The Podcast Pipeline
After 15 episodes of Fallthrough, the podcast that has set out to replace the defunct Go Time podcast, the panel looks back and forward. (Including some behind-the-scenes insights.)
Cup o' Go: Heap Happens: True Crimes in Go 🧹🔪 Plus which YAML is the best for you?
Jonathan and Shay about linters, waitGroup.Go
, the Go runtime, go-yaml
, Shay's stdlib
proposal, and more!
Spotlight: Final destination: Go?
Last Friday, someone on LinkedIn asked people to list the programming languages they learned and used during their life. I discovered that my list is pretty long (including all languages I only tinkered with, but still...).
Here it is in its full glory! (Believe me, I'm not trying to humblebrag. A nerd's nature and the shiny object syndrome are a dangerous combination 😬.) Stars mark languages I actually used in production.
- Sinclair ZX81 Basic
- Sinclair Spectrum Basic
- Z80 assembly
- CPM Basic
- RTOS-UH (a real-time OS and language for the Atari ST)
- Forth
- Pascal
- a little bit of Modula-2
- C
- SQL*
- C++
- Eiffel
- Sather
- Logo
- Prolog
- Visual Basic
- C#
- Objective-C
- AppleScript
- Java*
- JavaScript
- eScript* (a JS dialect for Siebel CRM)
- Bash
- Fish
- Perl
- Python
- Lua
- Go*
Yes, Go is literally at the end of the list. For most of my life since I got my ZX81 (at the age of 13), I had been searching for the "perfect" language. Spoiler alert: There is no such thing. Go, however, comes pretty close! The language and its ecosystem check A LOT of boxes that few languages have in that extent.
When I first came across Go, I was immediately hooked, and it didn't take long until I felt that I can stop my (futile) search for the "perfect" language.
Go is the get-shit-done language I've been looking for.
Quote of the Week: Tech debt = Tetris
Tech. debt is same as game of Tetris. The blocks never stop falling. Delay fixing, and you are quickly out of space.
More articles, videos, talks
Unit testing using mocks in Go | golangbot.com
A real-world example of using interfaces to make objects testable.
Native Windows Apps With Go: Syscall Mastery & The Windows API | by Jan Kammerath | Apr, 2025 | Medium
How to write a Go app that looks like a native Windows app, dynamically links to Windows system librarires, and even runs on Windows XP!
Container CPU Requests & Limits Explained with GOMAXPROCS Tuning
Another explanation of the GOMAXPROCS mechanics inside pods. (See also the third featured article in the previous issue.)
gRPC API Gateway: Bridging the Gap Between REST and gRPC | Zuplo Blog
How to use meshapi/grpc-api-gateway
to expose gRPC endpoints to REST API clients.
Domenico Luciani - How to use generics to avoid duplications and make your code better
If you find yourself writing dozens of implemetations of an interface, generics may help to avoid those duplications.
How to use the new "tool" directive - by Alex Pliutau
Another how-to for the new "tool" directive in Go 1.24.
This Tool Can Modernize Your Go Code - YouTube
A video tip: The modernizer
tool (part of gopls but also avialble as a CLI tool) can update old Go code to use "modern" features (such as, replacing interface{}
with any
).
GitHub - OpenRunic/framed: Table data manipulation and generation library
One fewer reason for falling back to Python for data science :)
Projects
Libraries
GitHub - 2xxn/go-raw-protobuf: Go library for encoding/decoding Protocol Buffers (protobuf) without requiring .proto files. Simplify serialization/deserialization with dynamic schema support.
Funnily, just a few hours ago, I found myself confronted with a bunch of .pb
files with no .proto
file around. I guess I'll try go-raw-protobuf
for processing these files, especially as the online demo app was able to decode one of the files perfectly.
(Tip: cat <file.pb> | base64 | pbcopy
turns the protobuf file into a base64 repesentation ready for pasting into the online app. (pbcopy
copies the input to the clipboard; it might not be available on your system, but I believe there are equivalent tools for every major OS.))
GitHub - solviumdream/gorilix: A lightweight, fault-tolerant actor model framework for Go. Inspired by Erlang/OTP, Gorilix enables seamless scalability and robust error recovery in distributed systems. Build resilient, concurrent applications with ease.
Another actor library. The actor model's paradigm is quite different from goroutines (as it considers concurrent code as identifiable, long-running entitites while goroutines are anonymous and ideally short-living) and adds a few knobs and levers for flow control.
GitHub - orsinium-labs/regexer: Go package with more powerful, flexible, and safe API for regular expressions based on lazy iterators
From the readme: "The main idea is to use the Go 1.24+ iterators to make finding/replacing submatches flexible, low-memory, and stoppable."
GitHub - GraHms/govinci: Govinci is a fully idiomatic Go framework for building cross-platform native apps using a declarative, functional DSL. Designed entirely in Go
A PoC of a mobile app development framework for Go. I am posting the link to the announcement on Reddit here because the author shares some details there that are not in the project's readme.
Tools and applications
GitHub - mickamy/gotcha: CLI tool to automatically run go test on file changes
Like air but specifically for auto-running tests.
GitHub - donkeysharp/donkeyvpn: DonkeyVPN is Telegram Bot that runs on Lambda and helps with the administration of ephemeral Wireguard servers, it uses spot instances to reduce costs :)
If you need to run low-cost VPN servers for minutes or hours, check out this project. (Accounts for Telegram and AWS required.)
GitHub - veiloq/scalver: Scalable Calendar Versioning 1.2025.3
CalVer and SemVer have a baby...
GitHub - mickamy/gopanix: 💥 Visualize your Go panics in the browser
Turn panic stack traces into readable HTML reports.
Completely unrelated to Go
Anubis works
Anubis, the AI bot blocker by Xe Iaso, made it into the United Nation's web servers.
Brain Food
Something to read and mull over: Remote-controlling fruit flies, prehistoric psychopaths, how to avoid whales, and silica gel.

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.
Christoph Berger IT Products and Services
Dachauer Straße 29
Bergkirchen
Germany