#​358 — April 16, 2021

Unsubscribe  |  Read on the Web

Go Weekly

'My Go Executable Files Are Still Getting Larger..'Why are my Go executable files so large? was a popular post in 2019 that dug into just what Go executable files contain. The author is back with a look at how things have changed but also how executables remain full of ‘non-useful bits.’

Raphael 'kena' Poss

Encore: A Go API Backend Framework with 'Superpowers' — Encore uses code generation and static analysis to take care of a lot of the boilerplate you’d ordinarily end up with when creating APIs. Version 0.11.0 was just released, and it’s one of those things you need to see to get.


Meet GoLand 2021.1 — Build and run your program remotely via Docker, SSH, and WSL 2, use newly supported features from Go 1.16, including //go:embed, quickly generate code from JSON, handle errors with ease using new quick-fixes, and more.

JetBrains sponsor

Faster Python with Go Shared Objects — It’s nice to see Go from the perspective of another ecosystem. Here, we see how Go can be used to produce faster code that can be called from Python.

Kevin Chung

What's The sync.Cond? — The author laments that they often hear people say sync.Cond is difficult to understand” (and, indeed, some people have even suggested the feature be removed from Go) so has set out to address the hows and whys of using condition variables in Go here.

Hidetatsu Yaginuma

Quick bits:

📘 Tutorials and Stories

Idiomatic Panics in Go — There is a bit of a “never panic” vibe in the Go community, but panic exists for a reason and is used in the standard library, so is there an idiomatic way to panic?

Stone Code

How to Set Up Vim for Go Development — It’s not too difficult to go beyond vim being a basic editor to something that can work on Go code in an intelligent way.

Preslav Mihaylov

Demystifying pprof Labelspprof offers a label feature so different parts to the code can be instrumented differently.

Frederic Branczyk

How NOT to Spend 10,000 Hours Maintaining Prometheus

Lightstep sponsor

▶  The Ultimate Guide to Crafting Your GopherCon Proposal — GopherCon 2021 is taking place in person (yes!) in San Diego this December and the Call for Proposals is open for another week. This 80-minute show goes into a lot of depth about how to formulate a proposal, including tips from someone on the CFP review panel.

Go Time Podcast podcast

How Google’s Site Reliability Engineering Team Uses Go — The benefits Go’s SRE team realized in their move from Python and C++ to Go. You’ve probably guessed that simplicity and easy concurrency are on that list.

Pierre Palatin (Google SRE)

Streaming Unzip with Go and AWS Lambda

Piaras Hoban

🛠 Code & Tools

gops: List and Diagnose Currently Running Go Processes — If you’ve got any feature requests, Jaana is listening.

Go Team

ION 1.9: A Distributed Real-Time Communications (RTC) System — Powered by both Go and Flutter, ION supports WebRTC, as you’d expect, as well as a few other protocols for video conferencing, live streaming, etc.


Log Management for Go, in a Flash — Easily create and manage log events in LogDNA with the Go code library.

LogDNA sponsor

GitLeaks 7.4: Check Git Repos and History for Secrets and Keys — Worried if you’ve got things like AWS details, GitHub tokens or SSH keys hanging around your project’s git history? Find out for sure with this Go-based tool.

Zachary Rice

Gitea 1.14.0 Released — The popular Go-powered git forge software.

Gitea Project

Snowflake: A Lock Free ID Generator Based on Twitter's Snowflake AlgorithmSnowflake is a system Twitter built many years ago to generate unique ID numbers for tweets.


progressbar 3.7.5: A Basic Thread-Safe Progress Bar

Zack Scholl


Back-End Engineer (Bitcoin Mining) — We're looking for experienced Golang engineers to join our team and work on rewarding projects in the crypto mining industry.
Luxor Technologies

Senior Software Engineer at Even (Anywhere) — Help end the paycheck-to-paycheck cycle. Build w/ Go, React Native, GraphQL, Postgres, Bazel. Remote encouraged.