Reading List

This page is auto-generated from Github Actions workflow that runs every day at night and fetches the 5 latest articles from each of my favorite blogs.

The story of one of my worst programming failures

My Rust dev setup in 2026

You don’t need many tools to write Rust—just a decent editor, and maybe an AI assistant or two. Here’s my Rust dev setup in 2026.

//go:fix inline and the source-level inliner

How Go 1.26's source-level inliner works, and how it can help you with self-service API migrations.

The Scheduler

In the previous article we explored how Go’s memory allocator manages heap memory — grabbing large arenas from the OS, dividing them into spans and size classes, and using a three-level hierarchy (mcache, mcentral, mheap) to make most allocations lock-free. A key detail...

Go errors: to wrap or not to wrap

Exploring the tradeoffs between wrapping errors at every return site versus wrapping only at boundaries, with no definitive answer - just honest tradeoffs for the kind of software I write.

Go 1.26.1-1 and 1.25.8-1 Microsoft builds now available

A new release of the Microsoft build of Go including security fixes is now available for download. The post Go 1.26.1-1 and 1.25.8-1 Microsoft builds now available appeared first on Microsoft for Go Developers.

You'll never see my child's face

I became a dad recently, and I’m not publishing a bunch of photos of my kid like most parents do. Some people started asking me why, so here it is.

How Go 1.26 stack allocation optimizations beat hand-optimized code

#​592 — March 6, 2026 Read the Web Version Go Weekly Allocating on the Stack in Go 1.25+ — Go 1.25 and 1.26 reduce garbage collector overhead by stack-allocating slices in more cases than ever before — including, in 1.26, slices th...

Mutate your locked state inside a closure

Why your mutex wrapper should accept a closure for mutation instead of a plain value, with examples from the standard library and Tailscale.