#​437 — November 18, 2022

Unsub  |  Web Version

Together with  Ardan Labs

The Go Weekly Newsletter

Making a Go Program 70% Faster with a One Character Change — How can you resist a title like that? This is the tale of tracking down a ‘silly mistake’ that led to a program running more slowly than it should have been. Slight spoiler: the character was & .. It also inspired a Hacker News discussion.

Harry Marr

Google's Go Style Guide — What goes for Google doesn’t necessarily go for everyone else, but it’s interesting to see their stance on writing idiomatic Go. The actual style guide is here and is pretty short and sweet, focusing on clarify, simplicity and consistency as tenets. Over on Reddit, Google’s Matt Proud noted that this is early days and there’s still work to be done in sharing this work more widely.

Google

Gophers - Opportunity is Knocking — We’re a premier software engineering firm looking for mid to senior level engineers to help us develop advanced software solutions and applications in Go. Got at least 1 year of professional Go experience and located in the Americas or Western Europe? We want to hear from you.

Ardan Labs sponsor

▶  A Consistent Logging Format for Go — Last week we linked to the structured logging proposal but here’s its author selling it to you more directly in an 11-minute screencast if you find it easier to digest this way.

Jonathan Amsterdam (Google)

IN BRIEF

RPC in Go using Twitch's TwirpTwirp is like gRPC but somewhat easier to deploy and specifically focused on Go to Go use cases. Twitch wrote more about it at the project’s release in 2018.

Gurleen Sethi

▶  How To Compose Interfaces — A short (11-minutes) and sweet screencast on composability with interfaces. Anthony’s channel is well worth a skim as he covers Go and Rust. Just two days ago he also released a screencast on ▶️ building a JSON API in Go.

Anthony GG

Three Ways to Embed a Commit Hash in Go Programs
Panagiotis Georgiadis (Red Hat)

🛠 Code & Tools

VarInt: Memory Efficient Arbitrary Bit Width Integers — If, for some reason, you want to store a hundred 100 bit integers in exactly 10000 bits, this minimalist library is for you. It also provides some basic arithmetic and bitwise ops.

Kostiantyn Masliuk

golang-lru: Fixed-Size Thread-Safe LRU Cache — The latest release adds support for generics 🎉

HashiCorp

🍰  Pie: A Utility Library for Dealing with Slices — Ways to work with slices with a focus on type safety, performance and immutability.

Elliot Chance

Register for Unblock 22 - A CI/CD Conference by Buildkite — Experience the 2-day virtual conference with industry experts who are defining the future of how we deliver software.

Buildkite sponsor

Tamarin: An Embeddable Scripting Language Written in Go — A simple language with a broadly JavaScript inspired syntax. The fantastic book 📗 Writing an Interpreter in Go by Thorsten Ball is credited heavily by the author (and well worth reading for yourself, too.)

Curtis Myzie

Mockery: A Mock Code Generator for Go Interfaces — Why write boilerplate when Mockery can do it for you?

Vektra

Sablier: An API for Running Containers on Demand — .. and shutting them down automatically once there’s no activity.

Alexis Couvreur

go-quartz: Simple, Zero-Dependency Scheduling Library — Inspired by the similarly named Quartz scheduler for Java.

Eugene R.

Gorse: A Universal Open Source 'Recommender System' — Gorse uses ML to provide a RESTful API of recommendations based on the data you feed it. It includes a dashboard and API docs.

zhenghaoz

Jobs

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

Golang Engineers — 100% Remote (North/South America & Europe) — We’ve got several opportunities for Go devs and would love to hear from those looking for new challenges in distributed systems projects.
Ardan Labs