#330 — September 18, 2020

Unsubscribe  |  Read on the Web

📣 Quite a few cool bits and pieces in the Code & Tools section at the bottom of this week's issue, so be sure to check it out if you don't usually 😁

Golang Weekly

GitHub CLI 1.0: Take GitHub to the Terminal — The aim is to reduce context switching and to help you script and create your own workflows all from the terminal. And as a bonus, it’s cross platform and built in Go (here’s the source) :-)


Debugging Go in Production Using eBPF — A somewhat complicated debugging technique showing how to intercept function arguments in userspace in a production application.

Pixie Labs Inc.

Sqreen: App Security for Golang Web Apps (Free Trial) — Deploy Sqreen in under 5 minutes and start protecting your Go web apps against OWASP top 10, reduce false positives and get actionable insights into threats and vulnerabilities.

Sqreen sponsor

go-bluetooth: A Cross-Platform Bluetooth API for Go — From the folks behind TinyGo comes this cross-platform package for working with Bluetooth Low Energy (BLE) from Go. It can also work on certain microcontrollers via TinyGo itself.


Introducing Pebble: A RocksDB Inspired Key-Value Store Written in Go — The folks at CockroachDB created Pebble as a RocksDB-compatible replacement for their storage engine. This post explains the why and the how of their process.

Peter Mattis

Go's Major Versioning 'Sucks' (From a Fanboy) — Go’s versioning policy beyond v1 is taking a bit of flak from some quarters of the community. To be fair, it’s a hard problem, and how we got here is understandable, and Lane concludes that “Go still has the best toolchain and ecosystem.” But intriguingly, the author of last week's Go Modules have a v2+ Problem post disagrees with much of this one as he explains on Hacker News.

Lane Wagner

💻 Jobs

Stream Provides APIs for Building Activity Feeds and Chat — Stream is looking for a full time Backend Software Engineer to join our development team. If you are interested in becoming a part of what we do, apply now.


Golang Developer at X-Team (Remote) — Join the most energizing community for developers and work on projects for Riot Games, FOX, Sony, Coinbase, and more.


Find Your Next Job Through Vettery — Create a profile on Vettery to connect with hiring managers at startups and Fortune 500 companies. It's free for job-seekers.


📘 Tutorials

Doing Cool Stuff With Go’s AST Packagego/ast is a built-in package that lets you explore syntax tree representations (i.e. ASTs) of Go code. Here’s an introduction to using it.

Cooper Thompson

Writing Multi-Package Analysis Tools for Go — Go provides packages to help analyze codebases and glean things like embedded types (structs or interfaces) along with many other insights.

Eli Bendersky

Running Go Code on iOS and Android — Notably this doesn’t use Go Mobile but instead uses Cgo to build libraries that can be imported into normal native mobile projects.

Roger Chapman

Try the Fastest, Most Secure Way to Test and Build Software Today 🚀 — Buildkite is as fast and enjoyable to use at 500 developers as it is at 10. Self-hosted agents work with all languages.

Buildkite sponsor

The Go Client for Elasticsearch: Configuration and Customization — How to configure items such as authentication, service discovery, logging, and retry functionality in your client code.

Elastic Blog

When The Go Garbage Collector Will Panic Over Bad Pointer Values

Chris Siebenmann

🛠 Code & Tools

modgv: Convert go mod graph Output Into Graphviz Graphs — Reads the output of go mod graph on stdin and returns DOT language code that you can use to render a graph with Graphviz for graphically visualizing the dependencies of your project.

Luca Sepe

A Database for Every Go REPL on Repl.itRepl.it is an online tool for writing (and even running) code in an in-browser IDE. Now, they’ve added their own key/value store into the mix which is usable from their Go REPL.


gopls v0.5.0 Released: Go's Language Server — Go’s official language server (used to provide extra Go-flavored functionality to editors and IDEs) adds some new features, such as extract-to-function and view GC optimization details, along with bug fixes.

Go Project

YARR: Yet Another RSS Reader — You definitely need to pronounce YARR like a pirate, in my opinion. Always good to see a desktop application built in Go, too.

Nazar Kanaev

Yaegi 0.9: Yet Another Elegant Go Interpreter — 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.


Bitmovin Encoder 2020 Roadmap: Dolby Vision & Atmos, VVC and More

Bitmovin Inc. sponsor

Datatable: A Go In-Memory Table — Provides a way to manipulate tabular (think spreadsheets) data – inspired by Pandas and R’s data frames. Dataframe-Go and Gota are other worthwhile projects in this space.


Leaf: A General Purpose Reloader for All Projects — Watches for changes in the working directory and runs the commands of your choice when files update. Built in Go, naturally.


2048: A Cli Implementation of the 2048 Game in Go

Amit Chhabra

go-immutable-radix 1.3: An Immutable Radix Tree Implementation