#209 — May 3, 2018

Read on the Web

Golang Weekly

Go's new logo

Go's New Brand — Based on Go’s philosophy of simplicity over complexity. You can even download the new “brand book”. Don’t worry, though, our beloved gopher is still alive and kicking.

Steve Francia

How Google Continuously Profiles Its Go Programs“We can see who is accountable for CPU and memory usage, we can continuously monitor our production services for contention and blocking profiles”

Google Cloud Platform

MySQL: Scaling & High Availability Over the Last Decade — Join CEO, Peter Zaitsev as he presents Percona's upcoming webinar on Tuesday, May 22nd, 2018 at 7:00 AM PDT / 10:00 AM EDT.

Percona sponsor

When Writing Unit Tests, Don't Use Mocks (Use Fakes) — Fakes provide more flexibility and allow for easy testing and refactoring, says the author, before working through an example.

Seth Ammons

Google Releases gVisor, a Sandboxed Container Runtime — Built in Go, gVisor provides VM-style isolation for containers in multi-tenant environments in a lightweight way.

Nicolas Lacasse (Google)

An Official Introduction to the Go Compiler — Daniel said he, along with others, wrote this brief guide “after finding that lots of knowledge around the compiler wasn’t well organised.”

Daniel Martí

Go 1.10.2 and Go 1.9.5 Released — Very minor bug fix releases.

Andrew Bonventre

💻 Jobs

Site Reliability / Operations Engineer (f/m) — With our unique distributed systems and a high uptime requirement, we offer an exciting technical environment to work in.


Open to a New Job? Sign Up for Vettery — Top developers can get 5+ interview requests during their first week on Vettery.


📘 Tutorials and Articles

Bounds Check Elimination in Go: A Micro-Optimization — A way to squeeze out a few more nanoseconds when you need it.

William Kennedy

Asynchronous Processing with Go using Kafka and MongoDB — A simple example of a (somewhat) complex architecture.

Melvin Vivas

Some Common Concurrent Programming Mistakes

Go 101

eBook: Efficient Project Management for Small Engineering Teams

Codeship sponsor

Securely Logging and Tracing HTTP Requests in Go — Here’s one way to keep sensitive data out of your application logs.

Bob Uhl

Learn Go by Writing Tests: Synchronizing Asynchronous Processes — An evolutionary tutorial that ends by leveraging Go’s concurrency idioms.

Chris James

Scraping the Web with Colly and Goquery

Benjamin Congdon

Tinyterm: A Silly Terminal Emulator Written in Go — Based on a lightning talk at a Sydney Go User Group meeting.

Dave Cheney

Debugging an Evil Go Runtime Bug — The story of a Go program that crashes on certain machines but not others which led to a very low-level debugging mystery.

Hector Martin

🔧 Tools & Code

TiDB 2.0: A Go-Powered Analytics (HTAP) Database — A MySQL-protocol compatible, distributed database focused on OLTP and OLAP. GitHub repo.


$20 Free On A New Linode Account — Linux cloud hosting starting at 1GB of RAM for $5/mo. Get $20 credit on a new account.

Linode Cloud Hosting sponsor

Corral: A Serverless MapReduce Framework for AWS Lambda — Think a Go-flavored Hadoop MapReduce-a-like that’s well-suited for ETL jobs.

Ben Congdon

Terratest: Write Automated Tests for Your Infrastructure Code — Test Terraform code, Packer templates, Docker images, interact with servers over SSH, work with AWS, and more.


go_generics: A Tool Google Uses to Transform Go Source — Noticed within Google’s new gVisor project.


Fuzzy: Fuzzy Matching Library Optimized for Small Strings — Ideal for filenames, code symbols, and the sort of things IDEs often use fuzzy search for.

Sahil Muthoo

➡ Better Way to Debug Production Issues

ROLLBAR sponsor

TextQL: Execute SQL Against Structured Text (like CSV or TSV) — Under the hood it pulls in a CSV to SQLite and runs queries against it.

Paul Bergeron