#558 — June 18, 2025
Go Weekly
Dealing with Race Conditions in Go — Anton has written some fantastic posts about concurrency in Go and this latest outing takes us deep into race conditions, including uncovering check-then‐set hazards, compare‐and‐set retries, idempotent Close patterns, TryLock caveats and a channel‐based "shared‐nothing" processor.
Anton Zhiyanov
Complete Go for Professional Developers — Craft production-grade APIs with Go, the language trusted by tech giants! Connect to Postgres, implement auth, and write tests that matter. Taught by a Twitch ML engineer who solves real problems with Go daily.
Frontend Masters sponsor
IN BRIEF:
-
📊 The SQLite Drivers 25.06 Benchmarks Game presents the results of benchmarking
mattn/go-sqlite3,modernc/sqlite, andncruces/go-sqlite3, libraries which all take different approaches to interfacing with SQLite. -
🇬🇧 GopherCon UK 2025 takes place this August and the schedule is now live.
-
🕹️ NebuLeet is a new game on Steam that's built in Go using Ebitengine – it has a free demo available.
-
🎮 Talking of games, the Ebitengine Game Jam has just started – you get two weeks (well, eleven days as of now) to build and submit a game.
OpenTelemetry for Go: Measuring the Overhead — If your app is logging everything it does, that’s another job that can eat into the resources available to it. But by how much? Nikolay runs a benchmark here to find out.
Nikolay Sivko
📄 Why I Made Peace With Go’s Date Formatting Preslav Rachev
📺 Statically and Dynamically Linked Go Binaries package main
📄 Things You Never Wanted To Know About Go Interfaces Miguel Young de la Sota
📄 Writing a Load Balancer From Scratch in 250 Lines of Code Sushant Dhiman
🛠 Code & Tools
TinyGo 0.38.0: Now with (Initial) Multicore Support — The Go compiler for ‘small places’ (mostly embedded systems and WebAssembly targets) gets its first multicore support initially targeting the RP2040. There’s also USB Mass Storage Device support for certain processors, and a new experimental GC for WASM to try.
Ron Evans
♟️ Introducing Chess V2: A New Chess Library — A library that implements the main logic of chess, including move generation, position parsing, and support for Portable Game Notation. There’s even an example Go program to let you play a (unskilled) game against it. GitHub repo.
Brigham Skarda
-
go-echarts 2.6 – Charting and data visualization library that uses Apache ECharts. You can see examples in the docs.
-
VHS 0.10 – CLI 'home video recorder'. "Write terminal GIFs as code for integration testing and demoing your CLI tools."
-
MCP-Go 0.32 – An implementation of the Model Context Protocol (MCP).
-
Netpoll 0.7.1 – High-perf non-blocking I/O networking framework focused on RPC scenarios.
-
lakeFS 1.60 – Git-like data version control for your data lake.
-
Delve 1.25 – Popular debugging tool for Go code.
-
Mockery 3.4 – Mock code autogenerator.
📰 Classifieds
🧠 Discern is hiring a senior full-stack Go/React dev to help automate entity compliance (US/LATAM). Join us: https://wellfound.com/l/2zxcz1
🐘 PostgreSQL user? Check out our sister newsletter, Postgres Weekly, for the latest Postgres news each Thursday.
✂︎ Deep cuts from the queue
As it's a quieter week than usual, we've gone back to look through our ever-growing queue of items which haven't yet made it into the newsletter for one reason or another. Here are some of the things that jumped out:
-
Glance (above) is a Go-powered personal information dashboard/portal where you can bring together RSS feeds, Reddit posts, Hacker News posts, YouTube channel updates, stock prices, and more.
-
Eli Bendersky demonstrates how to build static binaries with Go on Linux, including linking C into Go binaries and using Zig.
-
Alejandro Sáez Morollón explains how to package Go apps for Red Hat Enterprise Linux.
-
David Singleton posts about writing a simple BASIC to Go transpiler.
-
🎵 NOSTALGIA is a 90s style demoscene demo written in Go and using Ebitengine. You can ▶️ watch a video sample here.
-
Boxes and Glue is a TeX-inspired PDF typesetting library.
-
Glojure is a Clojure interpreter, hosted on Go.