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.

Why Engineers Can't Be Rational About Programming Languages

✨ Series OverviewThis is the first in a series of posts on the true cost of a programming language. The Leadership Blindspot: How Identity Drives Multi-Million Dollar Technical Debt A programming language is the single most expensive choice a company makes, yet we treat it...

Revisiting interface segregation in Go

Object-oriented (OO) patterns get a lot of flak in the Go community, and often for good reason. Still, I’ve found that principles like SOLID, despite their OO origin, can be useful guides when thinking about design in Go. Recently, while chatting with a few colleagues new t...

A tour of Go's newest garbage collector

#​576 — October 29, 2025 Read the Web Version Go Weekly Go's Green Tea Garbage Collector — Go 1.25 introduced a new, experimental garbage collector called ‘Green Tea’. Though experimental, it’s already in production at Google a...

The Green Tea Garbage Collector

Go 1.25 includes a new experimental garbage collector, Green Tea.

A hard rain's a-gonna fall: decoding JSON in Rust

Everybody’s talking JSON at me, but I don’t hear a word they’re saying. Instead, I need to deserialize that data into a Rust value I can use. Luckily, there’s a crate for that.

LaTeX, LLMs and Boring Technology

Depending on your particular use case, choosing boring technology is often a good idea. Recently, I've been thinking more and more about how the rise and increase in power of LLMs affects this choice. By definition, boring technology has been around for a long time. Piles of cont...

Early excitement for Go 1.26

#​575 — October 22, 2025 Read the Web Version Go Weekly The Draft Go 1.26 Release Notes — It’s still early days for the under-development Go 1.26, due to land in February 2026, but there’s already a draft set of release notes cov...

Avoiding collisions in Go context keys

Along with propagating deadlines and cancellation signals, Go’s context package can also carry request-scoped values across API boundaries and processes. There are only two public API constructs associated with context values: func WithValue(parent Context, key, val any) Co...

Getting Friendly With CPU Caches

Understanding how your data structures interact with hardware is one of the most powerful ways to improve application performance. This blogpost explores how CPU caches influence speed and how thoughtful struct design in Go can yield massive gains. Through a real-world case study...