#​435 — November 4, 2022

Unsubscribe  |  Read on the Web

Together with  Ardan Labs

The Go Weekly Newsletter

▶  How Go Programs Keep Working (By Being Boring) — In a talk given at GopherCon 2022 last month, Russ dug into Go’s “compatibility promise” that ensures your Go code will keep working even as the Go runtime evolves. “Boring can be good,” Russ says.

Russ Cox

'The Real Problem with Go' — Some yin to Russ's yang! This author’s complaint is around the challenges around contributing to Go and perceived bottlenecks in the project’s processes. These sorts of posts often inspire discussion and so did this one: over on Hacker News.

Vanity Notes

Gophers - Opportunity is Knocking — We’re a premier software engineering firm looking for mid to senior level engineers to help us develop advanced software solutions and applications in Go. Got at least 1 year of professional Go experience and located in the Americas or Western Europe? We want to hear from you.

Ardan Labs sponsor

HTTP Resource Leak Mysteries in Go — Stories of hunting down various leaks in production software are often interesting and informative, and this one is particularly good. Read on to find out how the term “prime suspect” can mean more than one thing.

Spike Curtis

Proposal: User-Defined Iteration using a Range over Func Values — Russ sets forth a proposal to add push and pull functions to ranges making them more functional and enabling some nice use cases, many of which Russ describes in the proposal. As you might imagine, there’s lots of good discussion here.

Russ Cox

Go 1.19.3 and Go 1.18.8 Released — Minor point releases that fix one security issue with syscall.StartProcess and os/exec.Cmd only. There was some speculation these releases were to tackle a simultaneously disclosed OpenSSL vulnerability, but they’re not.

Matthew and Heschi for the Go team


Build a Desktop App in Go Using Wails and React — As Electron is to Node.js, Wails is to Go – sort of. With Wails, you can build desktop apps for Mac, Linux and Windows with JavaScript in the front, Go in the back. This is more an intro than a full walkthrough, but there’s a handy repo if you want to see how the code fits together.

Ed Rutherford

'Thread-Local State in Go, Huh?' — There isn’t thread-local state in Go, but Andrei shows off a ‘trick’ that could help you to retain the thread identity on the hot path, at least.

Andrei Pechkurov

Most Common Kubernetes Security Misconfigurations — Learn to easily identify Kubernetes misconfigurations and deploy identity-based infrastructure access on November 16.

Teleport | goteleport.com sponsor

Using cgo.Handle to Pass Values Between C and Go — This article discusses a feature added to the runtime/cgo package in Go 1.17 that can turn any Go values into safe representations you can pass to C.

Arsen Musayelyan

Processing Large Files with Go — Using concurrency to speed up large file processing.


🛠 Code & Tools

Box CLI Maker: Make Highly Customized Boxes for Your CLI — Boxes, packages.. it all comes together here. Single lines, double lines, a mixture of the two.. rounded corners, only the corners, and more besides. v2.3.0 adds more customization options and examples.

Swastik Baranwal

Rueidis: Performance-Oriented Redis RESP3 Client — Heavy Redis users rejoice. Rueidis supports auto pipelining of non blocking commands, connection pooling, (optional) client side caching, and more.


Permify: Authorization Service Based on Google ZanzibarZanzibar is a global authorization system used by Google and this is a Go-based implementation of the ideas outlined in Google’s paper. Ory’s Keto is another such implementation.


go-wiki: A Wikipedia API Wrapper for Go — Focused on making it easy to search Wikipedia, grab entries, etc. rather than do admin.

Triet Nguyen

Wrapcheck: Linter to Check Errors from External Packages are Wrapped — It’s also available as part of the golangci-lint meta linter, if you’d prefer.

Tom Arrell


Golang Engineers — 100% Remote (North/South America & Europe) — We’ve got several opportunities for Go devs and would love to hear from those looking for new challenges in distributed systems projects.
Ardan Labs

Find a Job Through Hired — Create a profile on Hired to connect with hiring managers at growing startups and Fortune 500 companies. It's free for job-seekers.

MariaDB Operator for Kubernetes — Declaratively manage MariaDB using Kubernetes CRDs instead of imperative commands.

Martín Montes

Alphavet: A Linter to Detect Functions Not in Alphabetical Order — I’d not want this feature, but if you do.. It has a neat name though!

Steve Kemp