#​454 — March 31, 2023

Unsub  |  Web Version

ℹ️ A quick scheduling note: The Go Weekly Newsletter is moving to Tuesdays. As such, the newsletter will be taking a break next week and we will be back in your inbox on Tuesday April 11, 2023. Thanks for reading, and we'll see you then.
Peter Cooper, Editor

Together with  Ardan Labs

The Go Weekly Newsletter

SwissMap: A Smaller, Faster Hash Table for Go — The creators of the DoltDB database have open-sourced SwissMap, a Go port of a hash map from Google’s Abseil library. It uses less memory than Go’s built-in map and is well-suited for performance-sensitive contexts where memory use for large hash tables is a concern – though, as always, there are tradeoffs to consider. (GitHub repo.)

Andy Arthur (DoltHub)

🎂  Go 1 Released 11 Years Ago — A quick jump back in time to March 2012 when “Go version 1” was officially released. A lot has changed since then, but Andrew ended the post with one thing that is still true: “There has never been a better time to be a Go programmer.”

Andrew Gerrand

Go! Experts at Your Service — Do you need help filling skill gaps, speeding up development & creating high performing software with Go, Docker, K8s, Terraform and Rust? We’ll help you maximize your architecture, structure, tech-debt and human capital.

Ardan Labs Consulting sponsor

The Adapter Pattern in Go — How do you test a database without a database? It’s not a trick question. There’s a synergy between testability and good design, and the adapter pattern can help you decouple business logic (“knowing about widgets”) from persistent storage (“knowing about Postgres”).

John Arundel


Go Integration Tests with Postgres — A look at a few ways to use Postgres in testing scenarios, each with their own pros and cons.

Egon Elbre

▶  Cross-Platform Graphical User Interfaces with Go — The creators of Wails and Fyne went on Go Time to talk about the challenges of cross-platform GUI development.

Go Time Podcast podcast

Debugging Dockerized Go Apps with VS Code — It’s reasonably simple to setup a local Docker environment for debugging with Delve and Docker (or Docker Compose), as this step-by-step tutorial demonstrates.

Ken Aqshal

What Is a Saga in Microservices? — Take a deeper dive into the mechanics of sagas and explore how they can be used to manage long-running processes.

Temporal Technologies sponsor

AnyCable Off Rails: Connecting Twilio Streams with Go and Ruby's Hanami — An interesting marriage of Go and Ruby here to create an app to transcribe a chat into text using Vosk (a speech recognition system) and a load of other tools. There’s a great chance you’ll be exposed to something new here.

Evil Martians

🛠 Code & Tools

gotraceui: A GUI App for Viewing Go Execution Traces — Meant to be a faster, more accessible, and more powerful alternative to go tool trace with a Gio UI-powered interface tuned specifically to the unique characteristics of Go traces.

Dominik Honnef

go-nbd: Pure Go NBD Server and Client Library — NBD means Network Block Device and in Linux this provides a mechanism for providing block devices (e.g. a hard drive) over a network rather than in local hardware. With go-nbd, you can build your own abstractions and bridges, such as to turn a file, byte slice, S3 bucket or other io.ReadWriter into a fully-fledged block device.

Felicitas Pojtinger

Tailscale Integrates with 60+ Solutions That Your Team Uses Every Day — Tailscale makes it easy to connect all your team’s devices and development environments in a way that feels like magic.

Tailscale sponsor

gocodewalker: For Walking Directories of Code — If you want to walk through a nested set of directories in a code repo while respecting .gitignore, this is for you.

Ben Boyter

Tint: slog.Handler That Writes Tinted Logs — Tinted, as in colorful. Works alongside the (still experimental) structured logging approach Go is currently considering. Reminds me of that Soft Cell song from the 80s.


pathfind: Path Finding on 2D Polygonal Maps — Finds the shortest path between two points in a polygon set by building a visibility graph and then using the A* search algorithm against it.

Frederik Zipp


Software Engineer C++ — Join our "kick ass" team. Our software team operates from 17 countries and we're always looking for more exceptional engineers.
Sticker Mule

Find a Job Through Hired — Hired makes job hunting easy-instead of chasing recruiters, companies approach you with salary details up front. Create a free profile now.

🧑‍💻 Got a job listing to share? Here's how.