The Applied Go Weekly Newsletter logo

The Applied Go Weekly Newsletter

Archives
March 1, 2026

Faster, Smaller, Deeper • The Applied Go Weekly Newsletter 2026-03-01![2026-03-01-faster-smaller-deeper.png](https://assets.buttondown.email/images/b9d6f3cf-0f4c-4674-aab7-13375878f1ba.png?w=960&fit=max)

AppliedGoNewsletterHeader640.png

Your weekly source of Go news, tips, and projects

2026-03-01-faster-smaller-deeper.png

Faster, Smaller, Deeper

Hi ,

From the beginning of programming, two goals never changed: high performance and low memory consumption (in main memory and on disk). Oh, how cool would software development be if there were just a handful of best practices to stick with, in order to design fast, small binaries. Reality is different. A plethora of platforms and OSes, edge cases, and competing requirements cause apps to be slow and binaries to be bulky. In our constant fight against this, every tip and experience report is welcome, as well as intimate knowledge of the inner workings of compilers, runtimes, and toolchains.

Luckily, the featured articles cover all of that: a faster FFI, shrunken binaries, and a close look into the Go runtime.

Happy optimizing!

–Christoph

Featured articles

The Memory Allocator | Internals for Interns

The second post in the Go Runtime series. From asking the OS for a chunk of memory to managing it for the various needs of a Go process.

How we reduced the size of our Agent Go binaries by up to 77% | Datadog

How to shrink Go binaries by removing unnecessary dependencies and re-enabling dead code elimination (that gets blocked when using certain language features, such as reflection).

Benchmarks: Go's FFI is finally faster then GDScript (and Rust?) · quaadgras/graphics.gd · Discussion #277 · GitHub

Be aware that this is a very specialized benchmark for a graphics engine. Author: *"The CallThatReturnsVoid in the go test-bench results above has virtually no additional overhead versus GDScript, as it's eligible for batching. In practice, this means if you only call rendering functions and setters on the main thread, the cgo overhead is effectively nil."'

Plus, the "faster than Rust" part has a big question mark stapled on it. Author again: "The Rust GDextension bindings clearly have expensive safety checks, when they are disabled, gdext has the highest score."

Podcast corner

Fallthrough | Is Go Simple Anymore?

After a long time, Fallthrough has another episode on Go. Kris and Matt talk about the recently accepted generic methods proposal, Go 1.26 highlihts, and takeaways from the Go Developer Survey.

go podcast() | 073: Heroku in maintenance mode and surfacing observability

In this episode, Dominic and Morten discuss Heroku's maintenance mode, Discord's new ID verification, Mailpit, self-hosting, OpenTelemetry, and more.

go podcast() | 074: Andurel got contributors and OSS licenses

I daresay the majority of open source Go projects have a very liberal license like MIT or BSD. And the point of open source licenses is that the user gets maximum freedom for using your code. But what if you realize that your project would better run under a less liberal license, such as the LGPL? Especially if the project already has contributors. Morten faced this issue with one of his projects and talks about the challenges to overcome.

Then, Dominic and Morten go on dicsussing publishing packages to NPM, the changing landscape of front-end development, how to tell an LLM what to do, and (you guessed it) more.

Cup o' Go | Thank you for listening to episode 137. Err... 137-1 = 135? Or is it 136? No, 137. I think. Maybe.

Will Jonathan and Shay untangle their gordic episode number knot?

Quote of the Week: The Only One You've Got

Take care of your brain. It's the only one you've got, and no AI can replace it.

– Siddhant Khare

(via)

More articles, videos, talks

Vercel Security Checkpoint

While I'm not a fan of web scrapers, there is a small pocket of legitimate use cases for them. But still, if you have all the legal and moral arguments on your side, JavaScript can still get in the way. Here is how to scrape web pages that only exist after heavy JavaScript activity in the browser.

I Built Google Bigtable in Go: One File, Zero Dependencies | Jitesh's Blog

Look at the TOC and tell me: Would you expect a Bigtable implementation to live in a single .go file? Granted, it has 2800 lines (empty lines included), but still that doesn't seem much for the task of implementing a distributed data store without external dependencies.

Turn Dependabot Off

A small security fix in a crypto library, irrelevant to most of its clients, triggered thousands of PRs for projects unaffected by the bug.

The reason was that Dependabot detects updates to dependencies of a project without really knowing about their relevance to the project.

Filippo Valsorda owns the bespoke library and suggest replacing Dependabot with a more specific tooling for Go projects.

GraphQL: You Don't Have to Like It, But You Should Know It (Golang) - YouTube

Like the previous video, this one spawned a (mild) controversy about competing technologies—this time, it's GraphQL versus REST for remote database queries. And as I wrote last time, you have to know both technologies to be able to weigh the pros and cons of each.

Structured concurrency & Go | Redowan's Reflections

Go's concurrency primitives (goroutines and channels) are a simple but powerful abstraction of concurrency mechanics like threading or mutexes. But they're still primitives. Redowan Delowar explores higher-level approaches to concurrency in two other languages: Python's TaskGroup and Kotlin's coroutineScope.

GitHub - puzpuzpuz/go-concurrent-map-bench: Benchmarks for concurrent hash map implementations in Go

The standard map type isn't concurrency-safe for performance reasons, but if you need a concurrency-safe map implementation, the performance penalty should better be moderate. These benchmarks may help find the best one for a given use case.

v2

Charm's terminal UI libraries got an upgrade: v2 is out, promising better performance, and already battle-tested with Crush.

Server-Sent Events (SSE): Build a Real-Time Stock Dashboard in Go - YouTube

Classic HTTP communication is always triggered by the client. Server-Side Events (SSE) flip the roles of server and client. Learn how SSE works and how to build an SSE-driven dashboard with only the standard library.

Projects

Libraries

GitHub - donseba/go-form: Render forms in go based on struct layout

This idea has literally been sitting in the back of my brain for years. Finally, someone did it for me! A possible use case: equipping one's apps with a low-effort UI for editing preferences.

Tools and applications

GitHub - chetanjangir0/onepdfplease: A TUI for doing simple PDF tasks

Merging, splitting, encrypting, decrypting PDFs, and turning images into PDFs right at your fingertips.

GitHub - backendsystems/nibble: a local network scanner tui tool

Discover open ports in your local network that should better be closed.

Matcha Client

Read emails without Electron, without convoluted GUIs, and without sluggish web apps.

GitHub - boyter/cs: codespelunker - CLI code search tool that understands code structure and ranks results by relevance. No indexing required

Imagine a code search tool with the speed of a lean CLI tool and the ranking abilities of heavily index-based search engines. cs replaces pre-indexing with "brute-force calculations on the fly" backed by some caching.

GitHub - cshum/imagor: Fast, secure image processing server and Go library, using libvips

A full image management app that even doesn't touch your original files. It is open source but can be "bought" if you want to support the project.

GitHub - sivchari/awsim: A lightweight AWS service emulator written in Go for CI/CD environments

If LocalStack seems like too much overhead for simple local tests, awsim might be the tool you're looking for.

GitHub - blackwell-systems/shelfctl: PDF/EPUB library CLI/TUI backed by GitHub Release assets (Git LFS alternative). On-demand per-file downloads, metadata catalog, migrate/split bloated repos.

Storing binary files like PDFs or ePub books inside GIt repositories is a waste of storage space, especially if that space is limited. This tool helps to keep such files out of your repos.

Completely unrelated to Go

AI fatigue is real and nobody talks about it | Siddhant Khare

If AI assists you at coding, this article may read like a déja vu.

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.