#353 — March 12, 2021

Unsubscribe  |  Read on the Web

Go Weekly

The Go Developer Survey 2020 Results — Almost 10,000 gophers took the recently ran Go developer survey and the data has finally been crunched and various insights shared with us here. Some of the stand out points for me:

  • 96% of developers are now using modules with 76% being 'satisified'.
  • AWS is now the most common target for deployed Go programs.
  • 75% of developers 'infrequently' or never contribute to open source with Go.
We'll continue to share some insights in coming issues, too, as it's a lot to go through! :-)

Alice Merrick (Google)

netaddr.IP: A New IP Address Type for Go — This might sound boring at first glance but it’s both well written and it’s by Brad Fitzpatrick (formerly on the Go team at Google). Why did Tailscale, his new employer, need a new IP address type in Go? Find out why and how they approached the problem here.

Brad Fitzpatrick

Remote Instructor-Led Go, Docker, Kubernetes, Terraform, & Python Training — We offer live-streaming remote training sessions for individual engineers and companies that want to augment their knowledge in Go, Docker, Kubernetes, Terraform, and Python. We’ve trained over 10,000 engineers via our carefully crafted classes.

Ardan Labs sponsor

A Proposal for a New Security Policy for Go — You may have noticed that we’re mentioning a lot of Go updates based around fixing security issues lately (there’s even one just below this item). The Go core team are considering introducing a ‘severity scale’ for issues (so you can judge if a security release warrants a urgent upgrade, say) rather than them being treated as binary yes/no matters.

Filippo Valsorda and Go Core Team

Go 1.16.1/2 and 1.15.9/10 Released — Go 1.61.1 and 1.15.9 were two small releases to address two security issues: a infinite loop bug in encoding/xml and a potential panic bug in archive/zip. 1.16.2 and 1.15.10 then followed almost immediately as more typical bugfix releases.

Katie Hockman

How I Build Web Frontends in Go — A developer shares his approach to using Go in situations where an API is oriented around a dynamically rendered Web-based frontend.

Philipp Tanlak

💻 Jobs

Enjoy Building Scalable Infrastructure in Go? Stream Is Hiring — Like coding in Go? We do too. Stream is hiring in Amsterdam. Apply now.


Golang Developer at X-Team (Remote) — Join the most energizing community for developers and work on projects for Riot Games, FOX, Sony, Coinbase, and more.


Find Golang Engineering Jobs with Hired — Take 5 minutes to build your free profile & start getting interviews for your next job. Companies on Hired are actively hiring right now.


📘 Tutorials and Stories

Building a High-Scale Chat Server on Google Cloud Run — This isn’t necessarily the right tool for the job, but it’s interesting to think about what GCP’s serverless container compute service can handle.

Ahmet Alp Balkan

Finding a Problem in rtnetlink (or How to Nerdsnipe Me)rtnetlink is a Go package that provides low level access to Linux’s rtnetlink API (used for working with the kernel’s routing tables).

Francis Begyn

Visualize Golang Code-Level Performance with Detailed Flame Graphs — Datadog APM generates flame graphs from real requests, enabling you to monitor app performance in real-time. Try it free.

Datadog sponsor

Go Maps vs Switches — Benchmarking switch statements vs looking values up in a map with spelunking into the code to figure out why one is faster than the other.

Joshua Thijssen

gRPC Long-Lived Streaming — Omri creates an example using a service with multiple subscribers, demonstrating how to use gRPC for server and client, subscribe multiple clients, and handle errors for both.

Omri Cohen

The Tradeoffs of Version Behavior in go.mod Module Files — The current version of Go will add a go 1.xx directive to the go.mod file, which comes with some tradeoffs that may surprise you.

Chris Siebenmann

Save the Date. O11yfest Is Coming on May 17-18, 2021

Lightstep sponsor

How I Organize Structs in Go Projects — Some conventions one gopher uses to organize structs in larger projects.

James Dudley

🛠 Code & Tools

Pixelizer 2.0: An Efficient Image Pixelizer Written in Go — A fun little project that takes an image in and then pixelizes it.


TinyGo 0.17.0: The Go Compiler for Small Places — Three months of work go into this ‘large release’ with LLVM 11 and Go 1.16 support amongst the headlines. If you’ve got microcontrollers or WebAssembly to work with, this is for you.


Authelia: A Single Sign-On Multi-Factor Portal for Web Apps — An open-source (and, yes, written in Go) authentication and authorization server providing 2FA and SSO for your other apps.


Marcel: An Email 'MIME Artist' Library — Apparently using Go and the mime/multipart library to send a properly encapsulated multipart email with text and HTML parts along with attachments is tricker than you’d think (I’ve not done it myself) and this will help orchestrate things.

David Banham

fsql: Search Through Your Filesystem with SQL-esque Queries — A tool written in Go to let you do things like SELECT name, size FROM . WHERE NOT name RLIKE *.go