#291 — Decemeber 6, 2019

Read on the Web

Golang Weekly

A Proposal for Bringing Static File Embedding to cmd/go — There are great tools like Packr and Statik for embedding static files into Go binaries but Brad Fitzpatrick wonders if there should be official support for doing this in the usual go tool.

Brad Fitzpatrick

The Principles of Versioning in Go — The eleventh post in Russ’s versioning series dives deep into the story of the creation of what his first post proposed: package versioning and the modules system. He focuses on three principles behind the modern Go approach versus other attempts. There’s a lot to digest here.

Russ Cox

Please Welcome GoLand 2019.3 — GoLand consumes less CPU and performs faster than ever before. Get excited about smarter Go Modules support, new quick-fixes, and debugging applications remotely with Mozilla rr. See all this in action with a free 30-day trial.

JetBrains sponsor

Projects, Dependencies and gopls — When you want to give editors and IDEs more intelligent access to a language’s features, you’d often implement a ‘language server’. Here’s a look at how to use Go’s gopls for support in managing dependencies in VS Code.

William Kennedy

Progress Made on Ebiten in 2019Ebiten is a Go-based 2D game development library that’s made some big strides this year.

Hajime Hoshi

Go 1.13.5 and Go 1.12.14 ReleasedVery minor, non-essential upgrades.

Alex Rakoczy

💻 Jobs

Stream Is Hiring a Go Engineer in Beautiful Amsterdam — Enjoy building high-performance infrastructure at scale? Apply to work in our Stream Amsterdam office now.


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 Job Through Vettery — Make a profile, name your salary, and connect with hiring managers from top employers. Vettery is completely free for job seekers.


📘 Articles & Tutorials

Work-Stealing in the Go Scheduler — Go’s scheduler manages the running of different goroutines – here’s what happens when a processor is idle and ‘steals’ goroutines intended for another processor.

Vincent Blanchon

Calling Go Code from Perl — It’s easy to create shared libraries from Go which means you can call the compiled Go code from other languages, such as Perl, as demonstrated here.

Mark Fowler

▶  Profiling a Go Service in Production — A 25 minute talk from GopherConAU 2019 on instrumenting your code and using profiling tools to track and monitor performance.

Alexander Else

The SaaS CTO Security Checklist — Learn all of the latest best practices for SaaS CTOs and technical leaders around leveling up your company’s security.

Sqreen sponsor

On the Safe Usage of unsafe.Pointer — If you’re lucky, you won’t need to use the unsafe package to break free of some of Go’s (safety) constraints, but if you do.. here are some of the current and upcoming techniques that can verify your safe usage of the unsafe.Pointer type.

Matt Layher

An Introduction to Using Protobuf from Go — The first in a series called “Advent of Go Microservices” (all located here). There will be a new article in the series every day leading up to December 25th.

Tit Petric

▶  13 Talks from Gopherpalooza 2019Gopherpalooza was a single day Go conference that took place in Silicon Valley last month.


🛠 Code & Tools

GoFakeIt: A Random Fake Data Generator — Basically Go’s answer to Ruby’s exhaustive Faker library. GoFakeIt has over 120 functions for generating things like names, email addresses, phone numbers, colors, etc.

Brian Voelker

Kubethanos: Kill Half of Your Kubernetes Pods at Random — An interesting way to test the resilience of your Kubernetes setup by killing some pods within a set of your choice.


7 Popular Web Frameworks — The list probably doesn’t include any you haven’t seen, but the examples and links to each repo and docs are nice to have in one place.


Sparta: A Framework for Go-Powered Serverless Microservices — Transforms Go programs into self-deploying AWS Lambda-based serverless services. See the overview for how it operates.

Matt Weagle

Build Video for Your Go App in Just Two API Calls

Mux sponsor

rqlite 4.6.0: It's SQLite, But Distributed — Essentially a lightwight distributed relational database that uses SQLite behind the scenes. New features abound.

Philip O'Toole

Go Stripe: The Go Library for the Stripe API — If you’re using Stripe for your billing..


enmime: A MIME Mail Encoding and Decoding Package

James Hillyerd

Joker: A Small Clojure Interpreter (and Linter) Written in Go

Roman Bataev