#216 — June 21, 2018

Read on the Web

Golang Weekly

PDF: Comparing Languages for Engineering Server Software — If you like papers and benchmarks, this is your lucky day. One of several conclusions is “For a server where minimising message latency is crucial, Go and Erlang are the best choice”

University of Glasgow

The Go Object Lifecycle — Sure, Go isn’t an object oriented language but ‘object’ is a commonly used term for data structures stored in memory while our programs run. This post covers a few approaches for the instantiation, initialization, and initiation of such objects.

Ben Johnson

Forking or Branching – Lessons from the MySQL Community — Look at the history of MySQL, what are the causes of MySQL forking and branching as well as discuss the benefits and drawbacks of both approaches, using specific examples from the MySQL ecosystem.

Percona sponsor

Common Traps, Gotchas, and Common Mistakes for New Go Devs — We linked this a few months ago but it seems to be extended and now doing the rounds on social media again, so… :-) (You’ll either want to skim this or have a huge mug of coffee ready.)

Kyle Quest

Exploring The Landscape of Go Testing Frameworks — An evaluation of testing with the standard library, testing and assertion frameworks, and a couple of BDD libraries.

Benjamin Muschko

Analyzing Japanese with Natural Language Processing and Go — Japanese is known as one of the more difficult languages for English speakers to learn, so using NLP to analyze it is pretty fascinating.

Eno Compton

Go in a 'Scratch' VM — Is it possible to spin up a virtual machine that is just a Go binary? It is, but you have to handle some Linux tasks to make it all work.

Phil Pearl

💻 Jobs

Golang Developer — We are currently seeking a number of highly skilled and talented System Developers to join our dedicated development team in Dublin.


Have You Tried Vettery? — Vettery matches top tech talent with fast-growing companies. Take a few minutes to join our platform.


📘 Tutorials

Using Context Cancellation in Go — A clear write-up of how (and how not) to use the context package for cancellation.

Soham Kamani

How Twilio Improves 'Mean Time To Discovery' — "If my Mean Time To Discovery is based on a customer support ticket, I’ve failed." Read more.

ROLLBAR sponsor

A Practical Walkthrough of How vgo Works

John W. Griffin

Fixing The 'Billion Dollar Mistake' in Go by Borrowing From Rust — OK, so it doesn’t really fix the “mistake” (which is the existence of nil) but shows how to handle it in Go and Rust.

Jelte Fennema

Using GraalVM to Run Native Java in AWS Lambda with Go — Let Go reduce Java’s cold start problems.

Mustafa Akin

🔧 Tools & Code

go-critic: A Sandbox-esque Go Linter for Trying New Ideas — Linters seem to be an interesting project area lately (Revive came out a few weeks ago) and this one’s aim is to act as a ‘sandbox’ for trying out new Go linting ideas.

Oleg Kovalov

Linux Cloud Hosting Starting at 1GB of RAM for $5/mo

Linode Cloud Hosting sponsor

Gmp: Go Interface to the GNU Multiprecision Library — A drop-in replacement for Go’s math/big which uses GMP instead.

Nick Craig-Wood

hashmap: A Lock-Free Thread-Safe HashMap — Optimized for fast read access.


Fathom: Website Analytics Built with Golang & Preact — A privacy-focused alternative to Google Analytics.


Buffalo v0.12.0 Released — Custom application servers and modular locale extractors are among the improvements.

Mark Bates

go-heroku: Deploy Go Code to Heroku with GitLab CI

Simon Jürgensmeyer

xorm: Simple and Powerful ORM for Go — Supports MySQL, Postgres, TiDB, SQLite, MS SQL, and Oracle.


pgdeltastream: Stream Postgres Logical Replication Changes Over WebSockets


Track Once, Send Anywhere

Segment sponsor

Miniflux 2: A Minimalist Feed Reader using Go + Postgres — Related docs here.


Dispatch: A Web-Based IRC Client — Written in Go, naturally.

Ken-Håvard Lieng

gitprotocolio: A Git Protocol Parser Written in Go — Built on Google’s ‘20% time’.