#​394 — January 7, 2022

Unsubscribe  |  Read on the Web

Go Weekly

📊  Go 1.18: All You Need to Know — Miro is an interesting visualization tool and this diagram of the new stuff in (the still forthcoming) 1.18 (in beta, as of last month) is a pretty cool way to look at the release. (We’re unsure who created this, so let us know if it was you.)


Compiling a Go Program Into a Native Binary for the Nintendo Switch — This gets WAY into the weeds (lots of C, etc.) but really feels like a journey that ends with much faster compile times and a more stable binary for future work.

Hajime Hoshi (Ebiten)

💡 They're minor point releases but Go 1.17.6 and 1.16.13 have just been released.

Pulumi: Developer-First Infrastructure with Go — Developing on the cloud is complex. What if you could use your existing programming knowledge to build, deploy, and manage infrastructure on any cloud using your favorite languages and tools? With Pulumi you can. Get started for free at pulumi.com.

Pulumi sponsor

How Uber Saved 70K Cores Across 30 Mission-Critical Services — If you run large-scale services, the default values for tuning Go’s garbage collector probably don’t work for you. Uber found this to be true, so they automated this tuning on a per-service basis with incredible results.

Cristian Velazquez (Uber)

Three Minor Features Coming to Go 1.18 — I know everyone’s anxiously awaiting Go 1.18 for its generics support, but there’s more going on than that (as we saw above, also).

Carl M. Johnson

Gingko 2.0: A BDD Testing Framework for Go — A Go-flavored approach to Behavior Driven Design (think RSpec, if you’re familiar with Ruby) – essentially a way to write more expressive tests focused more on behavior than implementation. v1 user? Here’s a v2 migration guide.

Onsi Fakhouri


Senior Software Engineer (US Remote) — If you enjoy writing code that is parsimonious, correct, yet featureful - you will enjoy coding with us.

Senior Backend Engineer - Golang (Remote) — Grafana Cloud is our composable observability platform that integrates metrics, logs, and traces with Grafana.
Grafana 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.

Scanning Go Source for Vulnerabilities with gosec — Potentially a handy piece of automation to add to your local development and build pipelines.

Jean-Christophe Dansereau

Two Different Ways to Implement Breadth-First Search — The two ways are a queue structure and using a hashmap. Eva leaves evaluating which is better as an exercise for the reader.

Eva Hiew

⭐️  Go Proverbs — A collection of pithy sayings to post on your team’s wall (perhaps?) so they remember some handy principles of idiomatic Go.

Rob Pike

Visualizing Concurrency in Go — Ivan uses gotracer and gothree.js (which he created) to visualize common (and some advanced) concurrency patterns using WebGL animations and the result is quite fascinating. (Note: This is an older post.)

Ivan Daniluk

Generics Facilitators in Go
Jaana Dogan

🛠 Code & Tools

Vale: A Customizable Syntax-Aware Linter for Natural Language / Prose — Think of Vale as an open-source, highly customizable 'Grammarly'-a-like for your markdown, markup, and AsciiDoc. Needs an ASCII version of Clippy adding to it, perhaps..?


Excelize 2.5: A Library for Reading and Writing XLSX Files — A pure Go library for working with Excel spreadsheet files (Excel 2007 onward). Could be handy if you want to generate reports. GitHub repo.

Ri Xu

Sonic 1.0: 'Blazingly Fast' JSON Serializing for Go — If you’re getting déja-vu, we linked this two months ago, but v1 has just dropped. It’s a JSON library that leans on assembly for a big performance boost over Go’s standard option.

Bytedance Inc.

Get Started with Go and InfluxDB for Time Series Data

InfluxData sponsor

go-pattern-match: Pattern Matching Experiment for Go — Many functional languages offer pattern matching, so non-functional language communities (like Go and Python) are shoe-horning it into theirs.

Alexander Pantyukhin

Afero 1.8: A Filesystem Abstraction System for Go — A single consistent API for accessing a variety of filesystems. Also lets you create mock and testing filesystems that don’t rely on disk at all.

Steve Francia

Delve 1.8.0: A Popular Debugger for Go — 1.8 happily adds Go 1.18 support.

Derek Parker

rqlite 6.9.0: A Distributed Relational Database Built on SQLite6.9.0 adds support for named parameters.


Toxiproxy 2.3: A TCP Proxy to Simulate 'Chaotic' Network and System Conditions