#293 — Decemeber 20, 2019

Read on the Web

Golang Weekly

Each year, we like to close things off with a look back at the most popular links of the year — handy if you don't read every issue and want a quick catch up too :-)

We're going to be back on January 9 once the holiday season is over. Thank you for your continued support, we really appreciate it!
— Peter Cooper, Glenn Goodrich and the Cooperpress team

🏆 The Top 5 Go Items of 2019

Go 1.14 Should Be Great — Amazingly, our most popular link this year was to a tweet by core team member Brad Fitzpatrick which linked to a few things being worked on for the forthcoming Go 1.14 (this presentation contains links to even more such items). The good news is that the first beta of Go 1.14 is now out, so you can get playing today.

Brad Fitzpatrick

An Overview of Go's Tooling — “Overview” seemed insufficient for this tome of how to use Go’s to do just about everything from linting to rewrite rules to stress testing. Bookmark this.

Alex Edwards

Production-Grade Redis — Better monitoring, seamless scaling, durable and portable Redis hosting supporting all the latest features.

RedisGreen sponsor

Practical Go: Real World Advice for Writing Maintainable Go Programs — The output of two sessions at QCon China where Dave worked through a list of advice from naming to concurrency resulting in a handbook for solid Go(ld) programming.

Dave Cheney

Go is on a Trajectory to Become the Next Enterprise Programming Language — It was quite the headline, but the author made some worthwhile points about many of Go’s characteristics that give it an advantage in building large-scale software projects.

Kevin Goslar

Yaegi: 'Yet Another Go Interpreter' — Containous, the company behind Traefik, built a Go interpreter to enable Go to be used for scripting within other apps, interactive shells, or for quick prototyping. You can use it as a REPL or embed it into your own apps. GitHub repo.

Marc Vertes

💻 Jobs

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


Enjoy Building Scalable Infrastructure in Go? Stream Is Hiring — Like coding in Go? We do too. Stream is hiring in Amsterdam. Apply now.


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.


📘 Top Articles & Tutorials of 2019

The Top 10 Most Common Mistakes I’ve Seen in Go Projects — One developer’s personal list of the most common mistakes he’s seen in Go projects, including problems with benchmarking and pointers, confusion using break, slice initialization, and variable shadowing.

Teiva Harsanyi

Using Go Modules — The first in a series on the official Go blog covering modules, as supported in Go 1.11 onwards, from their creation to adding, upgrading and removing dependencies. Since module mode is the default from Go 1.13 onward, this is ground worth covering ASAP.

Tyler Bui-Palsulich and Eno Compton

Why Are My Go Executable Files So Large? — To answer this question, Raphael wrote a D3 (a JavaScript visualization library) application and learned a lot about Go executables. This is a long and interesting read.

Raphael ‘kena’ Poss

Best Practices for Writing High-Performance Go Code

Damian Gryski

Reach Millions of Developers with One Integration

Manifold sponsor

Go’s 'Features of Last Resort' — A ‘feature of last resort’ is a language feature that solves an otherwise hard-to-solve problem but is best avoided if possible (think goto in other languages). This post covers six such situations.

Martin Tournoij

Quick Go Performance Improvements — These tips were constrained as “techniques you can use to significantly improve the performance of your program with little effort” which is how I want all my tips going forward.

Stephen Whitworth

🛠 Top Code & Tools of 2019

Go Micro 1.6: A Microservice Development Framework — Provides the core features you need for distributed systems development. The last few releases have improved the project’s use of Go modules.

Micro Technologies

Watermill 1.0: A Go Library for Working Efficiently with Message Streams — We first linked to its launch post in 2018, but this library for building event driven apps has come a long way since.

Three Dots Labs

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

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

Jian Shen

cli 2.0: A Fast Way to Build Go CLI Apps — A long standing library that sprang back into life this year. Here’s the v2 manual which shows off all the main features.

Jeremy Saenz and Contributors

Chroma: A Pure Go General Purpose Syntax Highlighter — Chroma brings most of the features of Pygments, pretty much the Python-based standard in the syntax highlighting field, to Go and can even use the lexers and styles already created for Pygments.

Alec Thomas

Tracerr: Go Errors with Stack Trace and Source Fragments — An interesting experiment in making Go error output more informative. More examples here.