#356 — April 2, 2021

Unsubscribe  |  Read on the Web

Go Weekly

Down the Go nil Rabbit Hole — It may not be among the top knocks on Go, but nil handling has certainly been mentioned in Go gripe sessions. Here’s a solid example of the kind of gotcha you might find if you dig too deep into Go’s type system.

Dave Rolsky

Proposal to Add Fuzzing to Go's Standard Library Now Accepted — ‘Fuzzing’ is an approach to testing where inputs are changed/mutated to try and find issues with the code consuming said input. Now comes the implementation.

Russ Cox

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

Ardan Labs sponsor

OmniParser 1.0: A Go-Powered ETL System — Ingest CSV, XML, JSON, and more, in a streaming fashion, and transform it into JSON based upon a schema itself written in JSON. There’s an online demo here showing off some use cases. Benthos is an alternative if you want something more extensible and cloud service oriented.

JF Technology

📘 Tutorials and Stories

'How I Create Small Go Apps Quickly' — When you want to thrash out a quick idea, you’re sure to have some boilerplate code lying around to speed things up – Bill shares his here.

Bill Mill

Debugging Go Microservices in Kubernetes with VS Code — Peter uses delve and Telepresence to connect to a remote (so, could be production) Kubernetes cluster and step through a debugging process with a local VS Code IDE.

Peter O'Neill

▶  Code Across ALL Your Devices with This Vs Code-Based Project — In this video, learn how to set up code-server allowing you to code across multiple devices (some you might not expect.)

Linode sponsor

How Does Go Know time.Now? — This is a surprisingly deep look into how Go handles time, figuring out local, etc. You’ll need, um, time to read this.

Paschalis Tsilias

Building a BitTorrent Client from the Ground Up in Go — We linked this back in 2020 but it’s been doing the rounds on social media again and I remembered how useful it was for understanding how BitTorrent works.

Jesse Li

Introducing Bramble: A Federated GraphQL Gateway Implemented In Go — GraphQL federation is a reasonably new concept that addresses aggregating services behind a GraphQL API so you can make many services look like a single service.


▶  Releasing With (and Without) GoReleaser — A group chat focused around Carlos Becker, the creator of GoReleaser, a tool for speeding up the delivery of Go apps (via cross compilation, packaging, releasing to Git services, etc.)

Go Time Podcast podcast

Don't Use Build Tags for Integration Tests“I used to recommend using build tags to gate integration tests. But I don’t any more — I’ve found a much better way.”

Peter Bourgon

▶  Google Cloud's Serverless Options for Go Developers — Comparing App Engine, Functions, and Cloud Run.

Valentin Deleplace (Google)

Observability Won’t Replace Monitoring (Because It Shouldn’t)

Lightstep sponsor

🛠 Code & Tools

go-json: Fast JSON Encoder/Decoder Compatible with encoding/json — That’s one mean looking gopher in their project logo!

Masaaki Goshima

go-version: A Version Number Parsing and Verification Library — This is for when you need to do things like verify version numbers against constraints (e.g. is 1.2 >= 1.0, < 1.4). It can also parse, sort, and compare version numbers.


Jackal: An XMPP Server Written in Go — First linked a few years ago, it’s continuing to see updates including this week with support for XEP-0280: Message Carbons.

Miguel Ángel Ortuño

Go-MySQL-Driver 1.6: A MySQL driver for database/sql — The first release in over a year. Upgrade now, MySQL fans.

Go SQL Drivers

ctop: A top-Like Interface for Container Metrics


quic-go: A QUIC Implementation in Pure Go

Lucas Clemente

Task 3.3: A Task Runner / make Alternative Written in Go

Andrey Nering

Ultimate Plumber: A Tool for Creating Linux Pipes with Instant Live Preview

Mateusz Czapliński

💻 Jobs

Senior Software Engineering Consultant - [100% Remote]  — Co-founded by Justin Searls, Test Double is an engineering consultancy on a mission to improve the way the world builds software. Work on challenging projects with a collaborative, passionate team. 100% employee owned, contract and full-time roles available.


Lead Backend Developer/Go (m/f/x) — We’re looking for a dev with a solid background in designing/implementing Go backend services to support us in improving our fast growing e-commerce platform, leading a remote team of software developers. Remote work possible (EU).


Lead Backend Engineer — We’re looking for an experienced backend engineer to help us build a high accuracy online fraud prevention service