Flags for discoverable test config in Go

As your test suite grows, you need ways to toggle certain kinds of tests on or off. Maybe you want to enable snapshot tests, skip long-running integration tests, or switch between real services and mocks. In every case, you’re really saying, “Run this test only if X i...

Flags for discoverable test config in Go

As your test suite grows, you need ways to toggle certain kinds of tests on or off. Maybe you want to enable snapshot tests, skip long-running integration tests, or switch between real services and mocks. In every case, you’re really saying, “Run this test only if X i...

Flags for discoverable test config in Go

As your test suite grows, you need ways to toggle certain kinds of tests on or off. Maybe you want to enable snapshot tests, skip long-running integration tests, or switch between real services and mocks. In every case, you’re really saying, “Run this test only if X i...

How to Create PRs That Get Merged The Same Day

Quick takeaways Prioritize reviews over new work - treat PRs as work that’s almost done and needs to be pushed to production quickly Big PRs create a deadly loop - when reviews take ages, developers make even bigger PRs to avoid multiple long waits Knowledge sharing is the...

Some bits on malloc(0) in C being allowed to return NULL

Go 1.25's JSON evolution

#​559 — June 25, 2025 Unsub  |  Web Version Go Weekly JSON Evolution in Go: From V1 to V2 — A good look into the practicalities of using the JSON v2 package which lands in Go 1.25 (final release due in August) with new field tags...

Dealing with race conditions

#​558 — June 18, 2025 Unsub  |  Web Version 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 uncove...

Moving on from Nix

After using nix in my dotfiles for over 2 years, I’m now moving away from it. Here’s why.

The joy of (type) sets: interfaces and generics in Go

Generics introduces a whole new kind of interface to Go: one based not on methods, but on type sets. Let’s explore the possibilities.

Notes on Cramer's rule

Cramer's rule is a clever solution to the classical system of linear equations Ax=b: \[\begin{bmatrix} a_{11} & a_{12} & a_{13} \\ a_{21} & a_{22} & a_{23} \\ a_{31} & a_{32} & a_{33} \\ \end{bmatrix} \begin{bmatrix}x_1 \\ x_2 \\ x_3\end{bmatrix} = \...