The Applied Go Weekly Newsletter logo

The Applied Go Weekly Newsletter

Subscribe
Archives
November 23, 2025

Map it, Reduce it, Buffer it, Profile it • The Applied Go Weekly Newsletter 2025-11-23

AppliedGoNewsletterHeader640.png

Your weekly source of Go news, tips, and projects

2025-11-23-map-it-reduce-it-buffer-it-profile-it.png

Map it, Reduce it, Buffer it, Profile it

Hi ,

Processing large amounts of data within a short amount of time? This just cries for concurrency, or, more precisely, a Map-Reduce data flow. If you go down this path, you'd probably find yourself dealing with buffering. And when your data processor finally runs, I bet you won't just call it a day but rather do some profiling to get even better performance.

But where to start if you're new to writing time-critical concurrent code? Luckily, the featured articles have you covered.

–Christoph

Featured articles

Implementing MapReduce in Golang | Jitesh's Blog

MapReduce is a fundamental algorithm/architecture/strategy for massively parallel processing of large amounts of data, given that this data can be split into chunks that can be processed completely independently of each other.

In this article, Jitesh Kumar Sahoo walks you through a MapReduce implementation in Go that he did to actively learn how MapReduce works.

Golang concurrency part II, Buffered channels, Semaphore, in animations - YouTube

What do you think of when you hear the word "buffer" in the context of Go? Buffered channels, maybe?

Parsa Eissazadeh decided to look beyond the surface and explore the very concept of buffering.

Profiling Go Programs

Starting from a simple replica of Reddit's /r/place game, the author explores how tools like k6, pprof, and cgroups can help to profile a Go app and improve performance.

Podcast corner

Cup o' Go | 🎄 An Adventful Sweet 16 for Go! 🎂

Neil Vass, engineering manager at Co-Op in the UK, happens to be an expert in Advent calendars... specifically, in the Advent Of Code calendar. In this episode, he talks to Jonathan and Shay about his experience as an avid Advent of Code participant and how he uses AoC to learn Go.

go podcast() | 068: Revisiting Datastar with Delaney Gillilan

Continuing from episode 54, Delaney Gillilan joins Dominic St-Pierre to dive deeper into Datastar, a tool that facilitates interactions between an app's frontend and backend.

More articles, videos, talks

Re-exec testing Go subprocesses | Redowan's Reflections

Testing code that depends on the actions of another process? Sounds quite unreliable: Is the other binary always around? Does it load fast or will it slow down the test? Here is a neat trick to circumvent these obstacles: Let the test process spawn a child process of itself that emulates the external process. Details in the article.

Minimize Identifier Scope in Go | Fillmore Labs Blog

Variable scope isn't a trivial topic. Weird things can happen if a variable unintentionally overshadows a variable of the same name in an outer block. A scope too broad can trigger errors about variable re-declaration.

This article introduces not only best practices for variable scoping but also a tool that checks your code for variables that can be moved into a tighter scope.

GopherCon 2025 - Advancing Go Garbage Collection with Green Tea - Michael Knyszek - YouTube

Seven minutes well spent if you are eager to learn how a mark-and-sweep GC works. Seventeen more minutes well spent to learn how the Green Tea algorithm optimizes the Go GC for the hierarchical (cache) memory structures found in modern multi-core CPUs.

Projects

Libraries

GitHub - Nomadcxx/sysc-Go: Terminal animation library for Go. Pure Go animations ready to use in your TUI applications.

How about adding some nice animated graphic effects to your TUI app?

Tools and applications

Concrete Echoes

A nice side-scrolling jump-and-run game made with Ebitengine. Runs as a PoC in the browser via WebAssembly, but the author warns of occasional crashes.

GitHub - Advent of Go

Automate the Advent of Code!

At least, automate away the non-programming aspects, so that you can focus on solving the puzzles.

Side note: The inventor and maintainer of Advent of Code decided to trim the number of puzzles down to 12 and remove the leaderboard for understandable reasons.

Completely unrelated to Go

Signing Git commits and tags with SSH

What do you need for signing Git commits? GnuPG, of course. Wait, actually you don't. An SSH key is all you need.

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.