#313 — May 22, 2020

Unsubscribe  |  Read on the Web

Golang Weekly

Sorry, this picture was just too cute to resist using :-)

The Tale of Three Bugs in the Go MySQL Driver — While GitHub.com is a monolithic Rails app, various parts are being extracted into Go-based services and some GitHub engineers ran into some issues with the Go MySQL driver. This goes into a lot of depth and inspired quite a bit of discussion on Hacker News too.

Vicent Martí

Awesome Go: Over 2000 Go Links, Library and Tools — We link this epic resource of Go links, libraries, projects, and meetups every now and then, and it’s continuing to get updates every week. Got a library or tool of your own? Get it added to the list.

Awesome Go

We Now Offer Remote Go, Docker or Kubernetes Training — We offer live-streaming remote training as well as video training for engineers and companies 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

How I Structure Web Servers in Go — Both code organization and project structure were listed in the Go Survey 2019 results as challenges faced by Go developers, which explains why articles like this are always popular. This one goes into more detail than most.

James Dudley

▶  Build a Microservice with Go and GoLand — Despite being a commercial IDE, GoLand came in a very close second to Visual Studio Code as the Go community’s editor of choice in the recent Go community survey. This 90 minute screencast doesn’t focus on the editor but clearly demonstrates the value it provides in a full project.

Florin Patan (JetBrains)

Getting Started With LDAP in Go — LDAP (Lightweight Directory Access Protocol) is a rather long standing protocol used by directory information services such as Microsoft’s Active Directory.

Milos Gajdos

💻 Jobs

Want to build a platform ecosystem in Go? — Skool is hiring its 2nd backend engineer in Los Angeles, CA. Go, PostgreSQL, Redis, Elasticsearch, Docker. Apply Now.


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 — Vettery specializes in tech roles and is completely free for job seekers. Create a profile to get started.


📚 Articles & Tutorials

Mocking Time and Testing Event Loops — If you have code that relies upon the date/time, it can be beneficial when testing to have those times be predictable.

Dmitry Frank

Ways to Represent JSON Structures — An exploration of three differing approaches for representing JSON objects within Go: a direct one-to-one struct representation, a more generic approach, and a hybrid.

Eli Bendersky

The Ultimate Guide to Container Formats: Decrypting Video Technologies

Bitmovin Inc. sponsor

Building a Paperless, Remote Friendly Process with Go, Twilio and Google Cloud Run“Today I’ll share how I helped an old 25 years old credit bureau relying on faxes and printed papers to go fully remote with all their employees.”

Dominic St-Pierre

Speeding Up JSON Processing in Go — Reduce, Reuse, and don’t Reflect. The three Rs of JSON serialization for this article.

Andrew Klotz

▶  Discussing the Challenges of Distributed Messaging Systems — If you think building distributed systems is hard, try building a distributed system for other distributed systems to communicate! This is what the Go-powered NATS can help you do and its creator went on to the Go Time podcast to discuss all things distributed.

Go Time Podcast podcast

🛠 Code & Tools

Resty 2.3: Simple HTTP and REST Client Library for Go — Simple in terms of getting around its API, but in terms of features it’s pretty packed.

Jeevanandam M.

Stonks: A Terminal Based Stock Price Visualizer and Tracker — Love the subhead of “track your losses from a terminal.”

Eric Moynihan

Find & Fix Code Performance Issues — Install in minutes. Profile & understand Go code’s behavior & performance. Browse through appealing graphs.

Blackfire.io sponsor

go-fault: Fault Injection Library using Standard HTTP Middleware — Inject chaos into your stack, or, really, a percentage of your stack. Pick from three fault types or chain them together.


addchain: Cryptographic Addition Chain Generation — It’s OK, I didn’t know what this meant at first either and it seems limited to those in the cryptographic research or math spaces.

Michael McLoughlin

Google's Covid-19 Exposure Notification Reference Server is Written in Go — I mean, you’re not likely to need/want to install this for yourself, but if you want to see how Google engineers write Go code and structure a project, fill your boots.


Machinery 1.8.2: An Async Job Queue Based on Distributed Message Passing — It can use Redis, Memcached, RabbitMQ, or MongoDB as its backend store.

Richard Knop

🎲 Fun and Side Projects

gorched: A Terminal Based Game Inspired by Scorched Earth — This is cool for a variety of reasons. Not just because it’s a clone of a classic artillery video game but because it’s text-based (yet still looks cool) and written in Go, of course.

Ján Čabala

Building a Chip-8 Emulator in Go — A high level overview of Chippy, a Go powered Chip-8 emulator built by the author, and how to go about building your own such emulator.

Bradford Lamson-Scribner

If you want to get into a section like this in a future issue, let us know if you work on any interesting Go related projects you think we should include. Bonus points for games, musical, or anything with a nice visual angle we can include, but everything welcome. 😄

🐦 A tip from Twitter