#298 — February 7, 2020

Read on the Web

Golang Weekly

▶  The State of Go 2020: Changes Since Go 1.12 — What’s happened to Go since Go 1.12 and what’s coming up for Go 1.14? Francesc Campoy and Maartje Eyskens took 25 minutes at last week’s FOSDEM event to bring us all up to speed. Hate videos? Here’s the slides which stand up well on their own.

Francesc Campoy and Maartje Eyskens

Do You Need Go, Docker or Kubernetes Training? — We offer on-site corporate training for engineers that want to learn Go, Docker and/or Kubernetes. Having trained over 5,000 engineers, we have carefully crafted these classes for students to get as much value as possible.

Ardan Labs sponsor

The Zen of Go: Ten Go Development Values — Ten different principles for writing maintainable Go from Dave Cheney’s GopherCon Israel presentation. Dave is well known for his principle-heavy talks and blog posts, and if you’re keen to watch one, 'Do not fear first class functions' from dotGo 2016 is worth it.

Dave Cheney

Why Discord Is Switching From Go to Rust — This is causing consternation, as you might imagine. Especially since the comparison is to Go 1.9.2 vs Rust nightly builds and principally comes down to garbage collection.

Jesse Howarth

Go 1.14 Release Candidate 1 Released — The announcement is here. There is a change to the language around allowing interfaces with overlapping method sets along with a number of other minor changes including that Goroutines are now asynchronously preemptible.


Great news for TinyGo, an increasingly popular Go compiler for targeting 'small places' (such as microcontrollers and WebAssembly), with it becoming a Google sponsored project. Its future looks bright.

💻 Jobs

High-Growth Tech Startup in Luxembourg Hiring Senior Go Engineers — Do you like microservices? We do. We also like small data, beer and giant gorillas. Come join the Force.


Golang Developer at X-Team (Remote) — Work with the world's leading brands, from anywhere. Travel the world while being part of the most energizing community of developers.


Find a Dev 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

Adopting Go Modules and Integrating with GitHub Actions — Four lessons learnt when migrating gokrb5 (a Kerberos library) to use modules for dependency management.

Jonathan Turner

How Are Loops in Go Translated to Assembly? — Most developers don’t need to dig down to this level, but it’s interesting to read about someone else’s findings.

Vincent Blanchon

Testing in Go: Golden Files — An approach to not hard coding expected test result values in your source code and instead using external ‘golden’ files.

Ilija Eftimov

Measure and Improve Go Code Performance With Blackfire.io — Profile in development, test/staging, and production. Visualize bottlenecks in an intuitive UI and find root causes.

Blackfire.io sponsor

▶  Advanced Debugging Techniques for Go Code — A talk from the recent FOSDEM event that covers a variety of Go related debugging tools and techniques.

Andrii Soldatenko

Continuous Profiling Go Applications Running in Kubernetes — This uses a cronjob and some annotations to collect pprof data from running pods and push them to a Profefe registry.

Gianluca Arbezzano

Running Go CLI Programs in the Browser — And if you want to make your own WASM-based Go playground, here you go!

Martin Tournoij

Star: A Look at a Python-esque Language That Can Call Go Library Functions — Builds upon Starlark in Go, an interpreter for Starlark, a dialect of Python intended for use as a configuration language.

Max McDonnell

🛠 Code & Tools

httpretty: Pretty Prints The HTTP Requests You Make — Inspired by curl’s --verbose feature, this could prove handy when debugging.

Henrique Vicente

Fiber: An Express.js-Styled Web Framework for GoFiber is a basic HTTP service framework inspired by Node’s Express.js (which in turn was inspired by Ruby’s Sinatra) that’s actually aimed at making Node developer’s lives a bit easier when they move to Go. Being fast is a huge bonus too.

Vic Shóstak

The Ultimate Guide to Container Formats: Decrypting Video Technologies

Bitmovin Inc. sponsor

MongoDB Go Driver 1.3: The Official MongoDB Driver — Support for modules has been added (but it’s not mandatory) and there are new functions for working with BSON.

MongoDB, Inc.

Caire: A Content-Aware Image Resizing Library — Uses seam carving to stretch out unimportant parts of an image, allowing the resizing process to take an image’s content into account.

Endre Simo

FastHTTP 1.9: A Fast HTTP Implementation for Go — A long standing project that continues to get frequent updates and claims to be “up to 10x faster than net/http”.

Aliaksandr Valialkin

go-syslog 3.0: A 'Blazing Fast' Syslog Parser — v3.0, released yesterday, introduces initial RFC 3164 (BSD Syslog Protocol) support.


vim-go 1.22 Released

Fatih Arslan