Blog
Posts, notes, and articles.

Separation Logic: The Frame Rule, Separating Conjunction, and Concurrent Verification
2022-01-01An exploration of separation logic—O'Hearn and Reynolds's revolutionary extension of Hoare logic for local reasoning about mutable state, the frame rule, and concurrent separation logic.

Abstract Interpretation: Cousot's Galois Connection Framework, Widening/Narrowing, and Sound Static Analysis by Construction
2021-12-29A deep exploration of abstract interpretation—the mathematical theory of sound approximation that underpins every modern static analyzer, from the Astrée system to the Rust borrow checker.

Domain Theory: Scott's D∞ Construction, Solving Recursive Domain Equations, and the Foundations of Denotational Semantics
2021-12-19An in-depth exploration of domain theory—Scott's construction of a universal domain D∞ isomorphic to its own function space, continuous lattices, and how these ideas gave birth to denotational semantics.

Game Semantics: Fully Abstract Models of PCF, AJM Games, and Strategies as Sheaves
2021-09-30A rigorous exploration of game semantics—the technique that cracked the full abstraction problem for PCF by modeling computation as dialogue between Player and Opponent.

Linear Logic: Girard's Resource-Sensitive Logic, Exponential Modalities, and Linear Types in Rust
2021-09-29A comprehensive exploration of linear logic's resource-conscious foundations, proof nets, the ! and ? modalities translating intuitionistic to linear, and how Rust's ownership system mirrors these ideas.

Optimizing Distributed Consensus: Comparing Fast Paxos, Epaxos, And Multi Paxos In Wan Deployments With Latency Benchmarks
2021-08-20A comprehensive technical exploration of optimizing distributed consensus, comparing Fast Paxos, Epaxos, and Multi Paxos in WAN deployments with latency benchmarks, covering key concepts, practical implementations, and real-world applications.

Branch Prediction and Speculative Execution: How Modern CPUs Gamble on the Future
2021-08-15Explore how modern processors predict branch outcomes and execute instructions speculatively, the algorithms behind branch predictors, the performance implications for your code, and the security vulnerabilities like Spectre that emerged from these optimizations.

Virtual Memory and Page Tables: How Operating Systems Manage Memory
2021-08-12A comprehensive exploration of virtual memory systems, page tables, address translation, and the hardware-software collaboration that enables modern multitasking. Understand TLBs, page faults, and memory protection.

Homotopy Type Theory: The Univalence Axiom, Higher Inductive Types, and ∞-Groupoids
2021-08-11A deep dive into the univalent foundations of mathematics, where equality is homotopy, types are spaces, and the universe mirrors the ∞-groupoid of all ∞-groupoids.

Category Theory for Programmers: Functors, Monads, and Natural Transformations
2021-08-10A rigorous yet intuitive journey through the categorical structures that secretly power functional programming—from categories and functors to adjunctions and the monad-as-monoid correspondence.

State Machine Replication: Viewstamped Replication Protocol, Zab (ZooKeeper Atomic Broadcast), and the Consensus-Scalability Continuum
2021-07-27A deep exploration of state machine replication — how Viewstamped Replication and Zab enable fault-tolerant services through ordered command execution, and how the consensus-scalability continuum shapes modern distributed systems design.

Streaming Systems: Apache Flink Checkpointing, Kafka Log Compaction, Watermarks and Event-Time Processing, and Exactly-Once Semantics
2021-07-22A deep exploration of streaming systems — how Flink's distributed checkpointing provides exactly-once state consistency, how Kafka's log compaction enables durable event storage, and how watermarks solve the event-time vs processing-time dilemma.

B-Trees and LSM-Trees: The Foundations of Modern Storage Engines
2021-07-14An in-depth exploration of B-Trees and LSM-Trees, the two dominant data structures powering databases from PostgreSQL to RocksDB. Learn their trade-offs, internal mechanics, and when to choose each for your workload.

Columnar Storage: Parquet Encoding, ORC Stripe Format, Apache Arrow In-Memory Columnar Format, Predicate Pushdown, and SIMD Scans
2021-07-03A deep exploration of columnar data formats — how Parquet and ORC organize data column-by-column for efficient analytics, Apache Arrow's in-memory representation for zero-copy data interchange, and the vectorized execution that makes modern query engines fast.

CPU Caches and Memory Hierarchy: The Hidden Architecture Behind Performance
2021-06-22A deep exploration of CPU cache architecture, from L1 to L3 caches, cache lines, associativity, replacement policies, and cache coherence. Learn how memory hierarchy shapes modern software performance.

Object Storage: RADOS/Ceph Architecture, the CRUSH Placement Algorithm, S3 API Semantics, and Erasure Coding at Scale
2021-06-21A deep exploration of object storage — how Ceph's RADOS and CRUSH algorithm enable scalable, self-managing storage clusters, the S3 API's influence on cloud storage, and how erasure coding reduces storage overhead.

Distributed File Systems: GFS Design, HDFS Architecture, the Colossus Evolution, and Single-Master Metadata Bottlenecks
2021-06-18A deep exploration of distributed file systems — how Google's GFS pioneered the single-master model, how HDFS adapted it for the Hadoop ecosystem, and how modern systems have evolved beyond the single-master bottleneck.

Persistent Memory Programming: DAX Mappings, PMDK Libraries, Crash Consistency Without Write-Ahead Logging, and the Optane Legacy
2021-06-14A deep exploration of persistent memory — how DAX enables direct byte-addressable access to non-volatile memory, how the PMDK libraries solve the crash consistency problem at the instruction level, and the lessons of Intel Optane.

NVMe and the Storage Stack: The NVMe Command Set, Submission/Completion Queues, SPDK, and the Death of the SCSI/SATA Bottleneck
2021-05-31A deep exploration of NVMe technology — how the command set and queue model eliminate the SCSI bottleneck, and why user-space storage via SPDK achieves microsecond-latency I/O on commodity flash.

Instrumenting Without Spying: Privacy-Preserving Telemetry at Scale
2021-05-27How we rebuilt our telemetry pipeline to respect user privacy without sacrificing insight.

User-Space Networking: Snabb Switch, FD.io VPP (Vector Packet Processing), AF_XDP, and the Philosophy of Kernel Bypass
2021-05-14A deep exploration of user-space networking — how Snabb, VPP, and AF_XDP achieve line-rate packet processing by bypassing the kernel, and the architectural trade-offs of moving the network data plane into user space.

eBPF Internals: The In-Kernel Verifier, Safety Proofs, JIT Compilation to Native Code, Map Types, and XDP/TC Hooks
2021-05-08A deep exploration of eBPF internals — how the Linux kernel verifier proves safety, the JIT compilers that turn BPF bytecode into native instructions, the map infrastructure that enables stateful processing, and the XDP/TC hooks that make programmable networking possible.

Deterministic Monorepo CI Platforms: Engineering Consistency at Scale
2021-04-23A deep guide to building, operating, and evolving reproducible CI/CD systems for large monorepos without sacrificing developer velocity or safety.