#247 — January 31, 2019

Read on the Web

Golang Weekly

Another Go 2 Proposal: Error Inspection“We propose several additions and changes to the standard library’s errors and fmt packages, with the goal of making errors more informative for both programs and people.”

Amsterdam, Cox, van Lohuizen and Neil

Eliminate Error Handling by Eliminating Errors — While Go 2 is looking at better error handling, you can help yourself today by refactoring your code to need less of it.

Dave Cheney

Do You Need Help Migrating an Application to Go? — Do you need to augment your development team or need expert help in building your product? When it comes to building, maintaining and deploying production level software in Go, there are few companies that have the level of expertise and experience Ardan Labs has.

Ardan Labs sponsor

AresDB: Uber’s Go and GPU-Powered Real-Time Analytics Engine — Uber has built a pretty significant project using Go & CUDA which uses GPUs to enable real-time computation & data processing in parallel. GitHub repo.

Jian Shen

'Go Intentionally Has a Weak Type System' — An interesting comment from a prolific contributor to Go (and creator of the Go frontend for GCC): “there are many restrictions that can be expressed in other languages but cannot be expressed in Go. Go in general encourages programming by writing code rather than programming by writing types.”

Ian Lance Taylor

GopherCon 2019 Call For Proposals Closes Today — The leading Go conference takes place in California this July and you have just a few hours if you were meaning to get that proposal in.. In related news, GopherCon EU 2019 has just announced it’s going to be in the Canary Islands this May.


💻 Jobs

Senior Software Engineer - Identity - WeWork (San Francisco) — WeWork is looking for strong software engineers with 5+ years of experience to help build the future of our backend systems.


Find A Job Through Vettery — Vettery specializes in developer roles and is completely free for job seekers.


📘 Tutorials

WebAssembly with Golang is Fun — Learn about WASM and Go while building a game for your cat. That’s right, I said “game for your cat.”

Martin Olsansky

BoltDB vs Badger: A Comparison of Go Key-Value Databases

Tim Shannon

Improve Video Quality with Per-Title and 3-Pass Encoding

Bitmovin sponsor

Weighted Random Draws in Go — We have been seeing more and more algorithmic and data structure posts in Go. This one uses the standard lib and the excellent gonum package.

Milos Gajdos

Linked Lists in Go — Learn how to create this popular data structure and its variants by making music playlists.


Writing Apps in Go and Swift — Specifically, calling Go from Swift so you could, in theory, use Go in an iOS app, which the author has done, in practice.

Young Dynasty

Deploying Go with Docker to Heroku

Paweł Słomka

🔧 Tools & Code

ghp: A Simple Web Server for Serving Static 'GitHub Pages' Locally — Aimed at testing before deploying.

Curtis Lusmore

finish: For Graceful Shutdown of Servers — It uses the Shutdown method of http.Server, is customizable, and can handle multiple servers.


Monitoring and Distributed Tracing for Go Apps — Get full-stack monitoring and alerting for Go apps and 250+ infrastructure integrations. Try Datadog free.

Datadog sponsor

Faker: A Fake Data Generator for Your Structs — Got a struct of ‘user’ data for things like emails, IP addresses, names, or similar? Faker can populate them with realistic looking, yet fake, data.

Iman Tumorang

websocketd: Turn Any Program That Uses stdin/stdout into a WebSocket Server — Like inetd, but for WebSockets, this command line tool wraps existing CLI programs so they can be used over WebSockets.

Joe Walnes

go-tagexpr: An Interesting Way to Add Tag Expressions to Go Structs — The main use case so far is to define validations.

Bytedance Inc.

Submit a link to us to (potentially) win a cute Go gopher!

Golang Market has kindly given us 20 Go gophers (inspired by Renee French's design) and we're giving one away each week to a random person who submits a link. You can submit your link here. Good luck.

Alternatively, you can get your own gopher here if you simply can't wait. 😃

This week's winner is Corey Scott who submitted How-to fix tightly coupled Go code - congratulations.