2026
2025
- 2025-12-29 2025 in Review: What I Shipped, What I Dropped
- 2025-10-11 WASM Exceptions and the Problem of Stack Unwinding
- 2025-09-03 On Cooperative Cancellation in Async Runtimes
- 2025-08-19 Anatomy of a Crash-Safe Write-Ahead Log
- 2025-07-22 Tree-Structured Task Graphs: An Alternative to Callbacks
- 2025-05-08 Designing Fallible Iterators Without Coloring the World
- 2025-03-17 A Minimalist Approach to Protocol Versioning
- 2025-01-30 Self-Referential Structs and the Pinning Problem
2024
- 2024-11-05 Memory Safety Without a Garbage Collector: The Trade-offs
- 2024-09-24 Proving Your Protocol Correct With TLA+
- 2024-07-16 What a SIMD-Aware Parser Actually Looks Like
- 2024-06-02 Capabilities vs Permissions: Rethinking Access Control
- 2024-04-21 In-Place Construction and the Problem with Placement New
- 2024-02-09 Latency Percentiles Are Lying to You
2023
- 2023-12-18 The Hidden Costs of Lock-Free Data Structures
- 2023-10-04 Fuzzing as a Discipline, Not a Last Resort
- 2023-08-27 How I Think About Observability Instrumentation
- 2023-06-13 Reading Group: A History of Transaction Processing
- 2023-03-05 Linearity, Uniqueness, and What Comes Next
- 2023-01-22 State Machines as a First-Class Design Tool