#294 — January 10, 2020

Read on the Web

Golang Weekly

Building a BitTorrent Client From The Ground Up in Go — You’ll likely learn more about BitTorrent than Go in this post, but it’s pretty interesting and another example of how concise Go can be for sophisticated use cases.

Jesse Li

Continuous Profiling in Go with Profefe — Profefe allows you to continuously collect profile data from a running Go program, bypassing setting up your own pprof process.

Gianluca Arbezzano

Measure and Improve Go Code Performance With Blackfire.io — You can't improve what you can't measure. Blackfire Profiler for Go is built for developers who need to understand how their Go code consumes resources, identify bottlenecks and optimize performance - in development, test/staging and production.

Blackfire.io sponsor

GoLeak: A Goroutine Leak Detector — It’s still in alpha but you can use this to detect if there are any unexpected goroutines running at the end of a function.

Uber Engineering

Go 1.13.6 and Go 1.12.15 Are Released — Both minor point releases with fixes to the runtime and net/http package. The macOS releases enable the Hardened Runtime (required for notarized Mac apps).

Go Forum

HTML, CSS and Go, Together at Long Last: Vugu?Vugu is a project for building front-ends with Go (by means of WebAssembly).

Brad Peabody

💻 Jobs

Sr. Software Engineer at CrowdStrike (Remote) — CrowdStrike is the leader in cloud-delivered endpoint protection, which helps protect our customers from cybersecurity attacks.


Senior Software Engineer, Platform — Health Tech, join our distributed Platform team in our quest to build tooling for our Infra and Engineering teams using Ruby, Go, AWS & K8s.


Find a Job Through Vettery — Vettery is completely free for job seekers. Make a profile, name your salary, and connect with hiring managers from top employers.


📘 Articles & Tutorials

How to Write Go Code — We’ve had word that this core piece of Go documentation on how to write your first Go program has been fully rewritten to modern standards.

Official Go Docs

Navigating The Uncharted Waters of SSL/TLS Certificates and gRPC with Go — gRPC is a fast (and increasingly popular) remote procedure call mechanism and Go works with it pretty well. Here’s some of what you need to deal with when working with the TLS and certificate side of things.

Nicolas Leiva

Some Security Best Practices for Go — A look at six (rather random) security practices to take into account such as validating input, avoiding SQL injections, and logging.

Christian Meléndez

How to Mock OAuth 2.0 in Go

SeriesCI BLog

Developer Survey Is Live: Speak Out to Win Amazing Prizes & Gear

Developer Economics Survey sponsor

Building a Global Services Network using Go, QUIC, and Micro — The folks at Micro had the goal of allowing microservices to be deployed anywhere and still be able to communicate securely and easily.


Why We’re Writing Machine Learning Infrastructure in Go, Not Python — This isn’t about doing machine learning in Go, but about using it to build the infrastructure needed around the task.

Caleb Kaiser

Making More Resilient Go net/http Servers using Timeouts, Deadlines, and Context Cancellation — I think most of us know timeouts can be tricky, but this post drives it home and shows how to use them properly.

Ilija Eftimov

🛠 Code & Tools

govalidate: Validate your Go Installation and dependencies — Checks your Go installation, path, dependencies, and other settings.

Jaana B. Dogan

Chime: A Future Go Editor for macOS — It’s in closed beta right now, but you may want to subscribe to their updates so you know when Chime is ready.


godirwalk: Fast Directory Traversal Library — Claims to be faster, easier, more flexible, and, on Windows, more ‘correct’ than filepath.Walk.

Karrick McDermott

Collect and Monitor Go App Metrics and Distributed Traces in Real-Time — Use Datadog’s flame graphs to trace requests and locate errors quickly to then easily pivot with one click to related logs to troubleshoot.

Datadog APM sponsor

Editor: A Source Code Editor in Pure Go — We first linked this project two years ago but it’s just reached 1.0. Bills itself as a “know-what-you’re-doing source code editor”!

Jorge Miguel Pinto

Testify: A Toolkit of Assertions and Mocks That Play Nicely with The Standard Library

Stretchr, Inc.

Go-MySQL-Driver: A MySQL driver for database/sql — It’s not new, but this week’s 1.5.0 release adds module support.

Go SQL Drivers

Imagick: Go Binding to ImageMagick's MagickWand C API

Go Graphics Community

TinyGo 0.11.0: The Go Compiler for Small Places — We’ve linked to TinyGo a lot in the past year (but it’s deserved). The latest release bundles Clang in the release tarball and adds support for the Adafruit Pybadge.


Sarama: A Go Client Library for Apache Kafka 0.8+