--- import { getCollection } from 'astro:content'; import BaseLayout from '../layouts/BaseLayout.astro'; import NavBar from '../components/NavBar.astro'; import { getReadingTime } from '../utils/reading-time'; const posts = await getCollection('posts'); const sortedPosts = posts.sort((a, b) => b.data.date.getTime() - a.data.date.getTime()); const base = import.meta.env.BASE_URL.replace(/\/?$/, '/'); // Match rage series titles to actual published posts by slug const ragePosts: Record = { 'Your Build Cache Is Lying to You': 'your-build-cache-is-lying-to-you', 'Two-Phase Fingerprinting: BuildXL\u2019s Deep Magic': 'two-phase-fingerprinting-buildxls-deep-magic', 'Hooking Syscalls Without a Kernel Driver': 'hooking-syscalls-without-a-kernel-driver', 'TypeScript 7 Makes the Build Harness More Important': 'typescript-7-makes-the-build-harness-more-important', }; const rageDescriptions = [ 'The silent stale cache problem. Every JS monorepo build cache shares this flaw.', 'Weak fingerprints find candidates. Strong fingerprints verify them. The pathset is the bridge.', 'Three operating systems. Three interception mechanisms. macOS interpose, Linux eBPF, Windows Detours.', 'Counter-intuitive: tsgo\u2019s 10x speedup makes distributed coordination more important, not less.', 'Per-package content-addressed storage. The unsexy problem that kills CI build times.', 'Personal narrative. From lage maintainer to Rust rewrite. The architecture\u2019s original sin.', ]; const rageSeries = [ 'Your Build Cache Is Lying to You', 'Two-Phase Fingerprinting: BuildXL\u2019s Deep Magic', 'Hooking Syscalls Without a Kernel Driver', 'TypeScript 7 Makes the Build Harness More Important', 'node_modules in a Content-Addressed Store', 'What I Learned Maintaining Lage and Why I Rewrote It', ].map((title, i) => { const slug = ragePosts[title]; const post = slug ? posts.find(p => p.id === slug) : null; return { title, slug: slug || null, published: !!post, readingTime: post?.body ? getReadingTime(post.body) : null, number: i + 1, description: rageDescriptions[i], }; }); ---

Crash Test Dev

Engineering judgment, tested against reality.

Rage: Rebuilding the Build System

A six-part investigation into rage, a Rust monorepo build system that fuses BuildXL's provable correctness with lage's ergonomics. From syscall sandboxing to content-addressed storage.

{rageSeries.map((item) => (
{String(item.number).padStart(2, '0')}
{item.title} {item.description} {item.published ? ( Read · {item.readingTime} min ) : ( Coming soon )}
))}

All Posts