#340 — November 27, 2020

Unsubscribe  |  Read on the Web

Go Weekly

The Latest Draft Design for Type Parameters (Enabling 'Generics'); Now Due in 2022 with Go 1.18 — Russ Cox has mentioned that the Go compiler will require quite a lot of work to support type parameters so you’ll be waiting until Go 1.18 lands in about 14 months (which sounds closer than '2022' to me 😄)

Ian Lance Taylor and Robert Griesemer

Anonymous Structs: What and Why? — An anonymous struct is a struct defined without a name meaning it can’t be referenced elsewhere. Pointless? No. There are some nice use cases like nested structs or marshalling JSON data, say, where Lane argues anonymous structs handily beat map[string]interface{}

Lane Wagner

Remote Instructor-Led Go, Docker, Kubernetes, Terraform, & Python Training — We offer live-streaming remote training sessions for individual engineers and companies that want to augment their knowledge in Go, Docker, Kubernetes, Terraform, and Python. We’ve trained over 10,000 engineers via our carefully crafted classes.

Ardan Labs sponsor

▶  Why GitHub's CLI Team Switched From Ruby to Go — GitHub famously uses a lot of Ruby (and was founded by four Rubyists!) so it’s interesting to see where it doesn’t make sense. This 3 minute portion of a podcast with Mislav Marohnić of the GitHub CLI team breaks it down. Portability, basically.

The Changelog

Blackrota: Looking Into a Heavily Obfuscated Backdoor Written in Go — Netlab is a Chinese security research company and have uncovered what they call “the most obfuscated Go-developed ELF-formatted malware we’ve found” although apparently such projects are not considered common. Lots of details on the obfuscation here though.

Jia Yu (Netlab at 360)

An Online Go Scaling Conference Next Thursday (Dec 3)Go Systems Conf SF is a free online Go event taking place next week focusing on building and scaling Go-powered systems. Nice speaker lineup from companies like Monzo, VMware, and DigitalOcean.

Dgraph Labs

💻 Jobs

Lead Backend Engineer (Go) — Our mission is to build collaborative software that’s Super-Fast and Nice-To-Use. We are seeking a talented Lead Backend Engineer (Golang) to help us achieve our mission.


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 and Stories

Python Extensions with Rust and Go — Two friends ponder if they should create Python extensions in Rust or Go. The answer is…wait for it…it depends!

Bruce Eckel

Connecting to RabbitMQ from Go — RabbitMQ is a popular message broker which has good Go support.

Lane Wagner

Live Workshop: Getting Started with OpenTelemetry in Go

Lightstep sponsor

Building a Blog with Micro in Go — A step-by-step tutorial creating a quick CRUD app for posts. Micro has a robust CLI utility that generates microservices for your cloud-native platform. That’s a lot of buzzwords, but Micro is worth a look.

Janos Dobronszki

▶  The Secret Life of Gophers — Mat Ryer, Kris Brandow, Angelica Hill, and Natalie Pistunovich talk about work/life balance, work environment must-haves, communication tips, developer tool recommendations, and more.

Go Time Podcast podcast

🛠 Code & Tools

Clock: A Small Library for Mocking Time — Provides an interface around the time package so an app can use the realtime clock while tests use a mock clock.

Ben Johnson

Box CLI Maker: Make Highly Customized Boxes for Your CLI — I think the author of this packages really likes boxes! Single lines, double lines, a mixture of the two.. rounded corners, only the corners, and a lot more options await you here.

Swastik Baranwal

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

Richard Knop

Merge Word Docx and Add Cover Pages Using UniOffice — Merging Docx files is a headache due to the complexity of the format. UniOffice enables this and many other features.

UniDoc UniOffice sponsor

Ethr: A Network Performance Measurement Tool for TCP, UDP and HTTP — Yep, this comes from Microsoft. It’s nice to see them writing Go, and it works across multiple platforms too.


Smithy: A Tiny Git Forge Written in Go — A simple frontend for your git repository if something like Gitea feels a bit too much?

Honza Pokorny

lambda-go-api-proxy: For Porting APIs on Go Frameworks (Such as 'Gin') to AWS Lambda + API Gateway — Also supports Negroni, GorillaMux, and plain HandlerFunc.

Amazon Web Services - Labs

CloudQuery: Transforms Your Cloud Infrastructure into SQL Queryable Tables — Open source, written in Go. select * from aws_ec2_instances seems nicer than a CLI. Azure and GCP support are still pending.