Writing
Notes on life, systems, and performance. Plus building things that go fast.
Essays & notes
Notes on life, systems, and performance. Plus building things that go fast.
The arc
Different topics, one line of thought: from how machines coordinate, up to how we do, and out to how we choose what to see.
The systems and performance craft. Timing, dataflow, parallelism, and the hard problem of getting many parts to agree.
10 posts
What we build with. Language choices, safety, publishing, storage, and lately an AI agent kept honest by measurement.
5 posts
The same architect's questions, pointed at people, media, and the societies they run on.
1 post
The same eye turned to light, framing, and what a picture chooses to show. Llamas included.
1 post
When can you abstract something away for free? The condition has two names, context-free and zero mutual information, and almost nothing in a real system meets it.
Read more →Every abstraction is borrowed complexity: a quiet debt that comes due at 3am, in the layer you chose never to learn. On staying ahead of the bill.
Read more →How a wedding photo booth led me to a Nikon Zf, a bag of cheap vintage glass, manual focus, and a running habit of photographing tiny plastic llamas wherever work sends me.
Read more →A systems architect's questions, pointed one level up: from cores and caches to minds, institutions, and the societies they run on.
Read more →Managing Parallel, Part 4: The Machine Underneath. Memory ordering (x86-TSO vs Arm), NUMA topology, and cache-line atomicity
Read more →One pool of storage that Linux, macOS, and Windows can all share: NFS for the compute nodes, SMB for the laptops, and the UID-alignment trick that stops NFS permissions from ruining your week. Built for home ML clusters and home labs.
Read more →Managing Parallel, Part 3: When Parallel Goes Wrong. The short list of broken contracts behind most concurrency bugs
Read more →Managing Parallel, Part 2
Read more →A step by step guide to using C++ in C.
Read more →Managing Parallel, Part 1
Read more →What is stream processing and how does it relate to data-flow?
Read more →Tutorials and full code examples of how to use pipes and FIFOs to connect C/C++ compiled applications to a thread running inside a JVM using Java.
Read more →How to get flex and bison to work together in C++
Read more →How to time software properly: from rdtsc to clock_gettime and everything in between, plus timer synchronization.
Read more →From the archive
How to use templates to build functions by type size
Read more →How to host pages with GitHub pages, use jekyll and bootstrap together to make awesome pages
Read more →The folly of inventing secure languages
Read more →Data wrangling, why should you learn basic coding?
Read more →A case for more programming languages
Read more →