← passions

mostly low-level

building things

I do not like being told to trust something.



the pattern

An allocator instead of malloc. A virtual machine instead of an interpreter. A raytracer and a rasterizer instead of a graphics API. Raft instead of a database that already handles consensus.

None of it is better than the real thing. That was never the point. The point is that after you write one, the real one stops being magic. You know roughly what is behind the call, so when it behaves strangely you have somewhere to start.

why low-level

Abstractions are good and I use them constantly. But an abstraction you have never looked underneath is a thing you are trusting on faith, and faith is a bad debugging strategy at 2am.

Writing the memory allocator changed how I read every C program afterward. Writing Raft changed what I assume a database is doing when it says a write succeeded. The projects were not the deliverable; the change in how I read other people's systems was.

the one that matters most

A habit-tracking app I built with a friend of fifteen years is still in use. It is by far the least technically interesting thing I have made, and it is the only one with users who did not have to be convinced.

That is a better metric than anything on my GitHub, and I try to remember it when I am tempted to measure a project by how hard it was.


what it produced