🇺🇦 #​409 — April 29, 2022

Unsubscribe  |  Read on the Web

The Go Weekly Newsletter

'Crimes' with Go Generics — Many Go developers have warned there’s likely a period of churn and trial and error as everyone learns when and, importantly, when not to use generics. This post playfully focuses on the latter and on bad ideas which, perhaps, can help you refine your own attitudes to them.

Xe Iaso

Shaving 40% Off Google’s B-Tree Implementation with Generics — We’ve seen articles saying generics can hurt performance, but here’s a case showing a sizeable performance gain in many different categories: user time, heap allocations, GC pressure, and CPU utilization. Replacing interfaces with generics had more effect here than you might imagine.

Michal Matczuk (ScylladDB)

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

Writing Effective Go Fuzz Tests — We learnt in last week’s Go survey results that 73% of Go developers have yet to try fuzzing. If that includes you, this post tries to sell you on the idea.

Everest Munro-Zeisberger

Ebiten 2.3: The 2D Game Library for Go — It’s been at least a few issues since we’ve mentioned Ebiten, the fantastic 2D game library. This new release supports DirectX on Windows, native compiling for the Nintendo Switch(!), vibration support, and more.

Hajime Hoshi

Quick bits:

Jobs

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

Senior Software Engineer Backend (m/f/x) — We’re seeking an experienced Golang dev to support us in building a next-gen tech platform that will offer our users and partners a first-class service.
Aroundhome

Backend Engineer | Remote Within CET (-3/+3 Hours) | Full-Time — Join us as a Backend Engineer to create the finance solution all businesses love - Tailor made remote policy or relocation package.
Qonto

Find Tech Jobs with 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

Taming SQL and ORMs with sqlc — The first in a promised series of posts shining a spotlight on deserving Go tools and packages. They start with sqlc, a tool for generating type-safe Go interface code from SQL queries.

André Eriksson

Testing and Running Go API Gateway Lambdas Locally — Go is a great match for serverless functions but locally testing things can be tricky – here’s one approach.

Ben Boyter

▶  Analyzing Static Analysis with Matan Peled — One of the more technical Go Time episodes covering PhD research on meta programming and static analyzers and how Go’s measures up.

Go Time Podcast podcast

Go, Generics, and Concurrency — Using generics to implement a type-safe and reusable implementation of an async/await mechanism in Go. Yes, there’s a repo.

Jon Bodner

Validating HTTP JSON Requests in Go
Elliot Forbes

đź›  Code & Tools

Caddy 2.5: Popular Go-Powered Web Server with Automatic HTTPS — It seems whenever anyone becomes a Caddy user, they rave about it everywhere online, but automatic TLS is pretty cool to be fair.. v2.5 adds support for dynamic upstreams, OpenTelemetry integration, and Tailscale support if you’re using it.

Caddy Team

go-cmp: Package for Comparing Go Values in Tests — “intended to be a more powerful and safer alternative to reflect.DeepEqual for comparing whether two values are semantically equal.”

Google (but not officially)

Project Management for Today's (and Tomorrow's) Software Teams

Shortcut (formerly Clubhouse.io) sponsor

go-toml 2.0: Go Library for the TOML Format — TOML is a configuration file format invented by one of GitHub’s founders. Here’s what it looks like.

Thomas Pelletier

Blush: It's 'grep', But With Colors — A command-line utility that allows you to specify the colors of each match.

Arsham Shirvani

ZenQ: A Thread-Safe Queue Faster Than Native Channels — If speed is all you need…

Anish Mukherjee

mergestat: Query Git Repositories with SQL
MergeStat