Interesting Links

Pi: The Minimal Agent Within OpenClaw

A gentle introduction to the Pi coding agent and why I think it’s a glimpse into the future of software.

Reliable Signals of Honest Intent

It's better if the message comes in an expensive box.

Abstraction, intuition, and the “monad tutorial fallacy”

While working on an article for the Monad.Reader, I've had the opportunity to think about how people learn and gain intuition for abstraction, and the implications for pedagogy. The heart of the matter is that people begin with the concrete, and move to the abstract. Humans are very good at pattern recognition, so this is…

A Friendly Tour of Process Memory on Linux

A deep dive into how Linux manages process memory, page tables, and virtual address spaces

Burrows-Wheeler Transform (BWT) interactive introduction

An interactive deep dive into how the Burrows-Wheeler transform works for compression and for genomics sequence alignment algorithms.

In defence of swap: common misconceptions

tl;dr: Having swap is a reasonably important part of a well functioning system. Without it, sane memory management becomes harder to achieve.

Abdul Rahman Sibahi | A Dumb Introduction to z3

Exploring the world of constraint solvers with very simple examples.

Make better documents. - Anil Dash

A blog about making culture. Since 1999.

Gleam my new obsession | Eric Codes

In my previous blog post I stated that I started defaulting to Rust for my personal projects. While I really like Rust for its type-system, I'm not a huge fan of its learning curve. There is definitely a bit of a sunk-cost with a dash of Stockholm syndrome whenever I say I love Rust.

My Quarterly System Health Check-in: Beyond The Dashboard - nilenso blog

Srihari Srirama...

Pure and impure software engineering

Why do solo game developers tend to get into fights with big tech engineers? Why do high-profile external hires to large companies often fizzle out? Why is AI…

How to Fix Your Context

6 tactics for fixing your context and shipping better agents. As Karpathy says, building LLM-powered apps means learning to ‘pack the context windows just right’—smartly deploying tools, managing information, and maintaining context hygiene.

Deadlock-free Mutexes and Directed Acyclic Graphs

If you need to ensure that a particular piece of data is only ever modified by one thread at once, you need a mutex. If you need more than one mutex, you need to be wary of deadlocks. But what if I told you that there’s a trick to avoid ever reaching a deadlock at all? Just acquire them in the right order!

Lock Contention

Recently, I revisited Resolving a year-long ClickHouse lock contention post and spoke about it at C++ Russia 2025 conference.

A Guide to Undefined Behavior in C and C++, Part 1 – Embedded in Academia

Programming languages typically make a distinction between normal program actions and erroneous actions. For Turing-complete languages we cannot reliably decide offline whether a program has the potential to execute an error; we have to just run it and see.