The Applied Go Weekly Newsletter logo

The Applied Go Weekly Newsletter

Subscribe
Archives
November 9, 2025

Buil[d|t] To Learn • The Applied Go Weekly Newsletter 2025-11-09

AppliedGoNewsletterHeader640.png

Your weekly source of Go news, tips, and projects

2025-11-09-build-to-learn.png

Buil[d|t] To Learn

Hi ,

Sometimes, building a project is the best way to learn a particular topic. As a close second, inspect projects built by others to learn from them. This is not that difficult as it sounds, especially if a developer wrote about their project to help others learn from it, as in two of the featured articles.

Enjoy!

–Christoph

Featured articles

Implementing MQTT 5 in Go: A Deep Dive into Client Design — Part I | by MrTib | Nov, 2025 | Medium

You want to learn about the MQTT protocol and know Go? Start here! This is the first article of a series about implementing an MQTT 5.0 client.

Let's Write a JSON Parser From Scratch - by Sushant Dhiman

Writing a parser?! Not so difficult if you pick an easy language to parse (JSON) and write a recursive-descent parser for it. This kind of parser is intuitive to write and easy to reason about. Especially after reading this article.

Go 1.25.4 and 1.24.10 have been released

New minor Go releases are available for Go 1.25 and 1.24. Fixes for both major versions include fixes to the encoding/pem and net/url packages. Go 1.25.4 also includes fixes to the compiler, the runtime, and the crypto/subtle and os packages.

  • Download
  • Go 1.25.4 Milestone
  • Go 1.24.10 Milestone

Podcast corner

Cup o' Go | Can Claude Code fix your subtle bugs? 🐞

If Claude is the name of the best developer in your team, the answer is a clear "yes". But what if it's Claude the stochastical parrot?

More articles, videos, talks

Plasma Effect Tutorial - Go with Ebiten

Graphical animations aren't quite a core domain of Go, but with a little help of Ebitengine, you can use your favorite language to create some cool effects!

Chris's Wiki :: blog/programming/GoExplicitMemoryFreeing

Will Go get manual memory management? Well, probably not, but the runtime may get some empowerment to free memory without asking the garbage collector.

What Is sync.Pool in Go & How to Use It Properly - YouTube

Proper resource handling in concurrent applications is crucial. Resource pools can help to avoid unnecessary efforts for creating and disposing of resources, as well as regulating access to limited resources. Time to look under the hood of sync.Pool().

Projects

Libraries

GitHub - PabloVarg/contextlogger: Context Logger for Golang

In the previous issue, you could learn how to implement a context logger. Here's the lazy route: a ready-to use context logger library.#### GitHub - MatProGo-dev/MatProInterface.go: A common interface used for modeling Mathematical Programs (e.g., Convex Optimization problems) in the language Go (Golang).

This library provides a common interface to optimization problem solvers (currently supported solvers: simplex and Gurobi.

Why not use a solver directly?

Author: "When you know the form of your optimization problem and the solver that is best for it, then it makes sense to directly integrate a single solver and commit to its formalisms!

"This is more of a tool in the optimization design/prototyping phase of development (similar to how MathOptInterface.jl is a tool in the design/prototyping phase for Julia). You use this when you're trying a bunch of different solvers and/or problem formulations for a given "task". Once you're satisfied with a problem formulation + solver combination for your task, then you can fully commit to one specific solver and set the sparsity pattern in stone."

GitHub - mmonterroca/docxgo: Complete rewrite of go-docx: Production-grade Word document creation with domain-driven architecture, full OOXML compliance, and comprehensive error handling.

Half an update, but also kind of new: go-docx 2.0 can now read and modify Word docs (rather than just create them). #### GitHub - dlecorfec/progjpeg: Go JPEG package with progressive encoding

Progressive JPEG images can be decompressed in a progressive manner (hence the name) so that clients can display a blurry version of the image while the rest of the image still downloads over a slow connection.

An interesting side story: The library was half-ready about six years ago, but the author was stuck on a few bugs until Claude came to the rescue.

Tools and applications

GitHub - ankur-anand/unisondb: A log-native database that replicates like a message bus — purpose-built for distributed, edge-scale systems.

For SQLite, the write-ahead log (WAL) is a recovery mechanism. For UnisonDB, it's the single source of truth, so that the database can trivially double as a message bus to form a net of replicated databases, "all without external message buses, CDC pipelines, or sync drift", as the readme points out.

Completely unrelated to Go

Coding on Paper - by Tivadar Danka - The Palindrome

When the only available tool is your brain...

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:
LinkedIn
Powered by Buttondown, the easiest way to start and grow your newsletter.