Blog
Posts, notes, and articles.

Storage-Class Memory: Intel Optane, 3D XPoint, and the Lessons of a Bold Failure
2025-08-15The technology, the programming model, and the performance characteristics of Intel Optane — and why the most promising memory technology in a generation failed commercially despite delivering exactly what it promised.

Differential Privacy: Formal Guarantees, Composition Theorems, and the Engineering of Private Systems
2025-08-12Build differential privacy from first principles: the formal (ε, δ)-definition, the Laplace and Gaussian mechanisms, composition theorems (basic and advanced), the sparse vector technique, and how to engineer practical private data systems at scale.

Memory Technologies: DRAM, HBM, GDDR, and the Scaling Wall
2025-08-10Inside the memory hierarchy that feeds the compute engines — DRAM cell physics, HBM stack architecture, GDDR for graphics, the row hammer crisis, and emerging alternatives like FeRAM and MRAM.

Kolmogorov Complexity and Algorithmic Information Theory: The Deepest Measure of Information
2025-07-30Dive into algorithmic information theory: Kolmogorov complexity as the ultimate measure of information content, its relationship to randomness (Martin-Löf tests), the incompressibility method for proving lower bounds, and the philosophical implications for science and mathematics.

Queueing Theory for Systems Engineers: From M/M/1 to Heavy-Tail Distributions and Tail-at-Scale
2025-07-18Master queueing theory as a practical tool for systems design: the M/M/1 model, Little's Law, Jackson networks, the dramatic impact of heavy-tailed service times on tail latency, and how to apply these insights to load balancers, microservices, and capacity planning.

Algebraic Topology in Distributed Computing: Wait-Free Solvability and Simplicial Complexes
2025-07-06Discover how algebraic topology — simplicial complexes, Sperner's lemma, and homology — provides the deepest known framework for understanding what concurrent and distributed tasks are fundamentally solvable, as developed in Herlihy and Shavit's 'The Art of Multiprocessor Programming'.

MPI vs. OpenMP in 2025: Where Each Wins
2025-07-04A practical guide to choosing between message passing and shared-memory parallelism for modern HPC and hybrid nodes.

Memory Consistency Models: From Sequential Consistency to the C++11 Memory Model
2025-06-24A rigorous treatment of memory consistency models: Lamport's sequential consistency, the transition to relaxed models, the formal semantics of the C++11 memory model with its acquire-release and relaxed atomics, and how to reason about concurrent code that doesn't tear.

ASIC Design Flow: From RTL to GDSII — Synthesis, STA, and the Tapeout Checklist
2025-06-22A walk through the entire ASIC design flow — logic synthesis with Design Compiler, static timing analysis with PrimeTime, place-and-route with Innovus/ICC2, clock tree synthesis, and the signoff checklist that separates working silicon from a very expensive coaster.

Spectral Graph Theory: How Eigenvalues Reveal the Hidden Structure of Graphs
2025-06-12Explore how the eigenvalues and eigenvectors of graph matrices — adjacency, Laplacian, normalized Laplacian — encode fundamental graph properties: connectivity, expansion, mixing time, clustering structure, and more.

The Probabilistic Method and Randomized Algorithms: From Tail Bounds to Derandomization
2025-05-30Master the probabilistic method — Paul Erdős's beautiful technique for proving existence non-constructively — alongside the tail bounds (Chernoff, Hoeffding, Azuma) that make randomized algorithms practical, and the modern methods for removing randomness.

From MapReduce to Spark: The Arc of Data-Parallel Systems
2025-05-19MapReduce taught fault-tolerant batch at scale; Spark generalized it with resilient distributed datasets (RDDs) and DAG scheduling.

Error-Correcting Codes: Reed-Solomon, LDPC, and How Distributed Storage Survives Failure
2025-05-18Build error-correcting codes from the ground up: finite field arithmetic, Reed-Solomon encoding and decoding via Lagrange interpolation, LDPC codes and belief propagation, and how modern distributed storage systems use erasure coding to survive disk failures with minimal overhead.

FPGA Programming: HLS, Verilog, and the Spatial Computing Paradigm
2025-05-12How reconfigurable hardware rewires the boundary between software and silicon — from Verilog's explicit dataflow to high-level synthesis with C++, and why FPGAs are eating the inference and networking world.

The Lambda Calculus and Combinatory Logic: The Minimalist Foundations of All Computation
2025-05-06Rediscover the lambda calculus as the essence of computation: Church's elegant system of function definition and application, its equivalence to Turing machines, the fixed-point combinator, and its enduring influence on programming languages from Lisp to Haskell.

Zero-Knowledge Proofs: From Interactive Protocols to zk-SNARKs and Practical Verifiable Computation
2025-04-24Build zero-knowledge proofs from the ground up: the simulation paradigm, Schnorr's protocol for discrete log, the transformation to non-interactive via Fiat-Shamir, and the engineering of modern zk-SNARKs for verifiable computation.

Quantum Computing Architectures: Superconducting Qubits, Trapped Ions, and the NISQ Era
2025-04-17From transmon Hamiltonians to Majorana zero modes — a deep architectural dive into the physical platforms competing to build the first fault-tolerant quantum computer, and why the error correction overhead dominates everything.

The Fast Fourier Transform: From Cooley-Tukey to Modern Signal Processing and Fast Multiplication
2025-04-12Master the FFT from first principles: the Cooley-Tukey algorithm as recursive divide-and-conquer, the underlying group theory, modern variants for arbitrary sizes, and applications from polynomial multiplication to GPU signal processing.

Auditing the Algorithm: Building a Responsible AI Pipeline That Scales
2025-04-05How we operationalized responsible AI with automated audits, governance rituals, and transparent reporting.

The PCP Theorem: Why Some Problems Are Hard Even to Approximate
2025-03-30Unpack one of theoretical computer science's crown jewels: the PCP theorem, which shows that for many NP-hard problems, even finding an approximate solution is intractable — and how probabilistically checkable proofs revolutionized our understanding of hardness.

The Curry-Howard Correspondence: How Type Theory Bridges Proof and Computation
2025-03-18Explore the profound isomorphism between logical proofs and computer programs: how the Curry-Howard correspondence unifies propositional logic with typed lambda calculus, and how it enables modern proof assistants like Coq, Lean, and Agda.

CHERI and Capability Hardware: Memory Safety at the Gate Level
2025-03-11How CHERI Concentrate compression, the load barrier for temporal safety, and the Arm Morello prototype are reshaping what it means to build a secure processor — and why formal verification of capability integrity is the hard part.

Shannon's Information Theory from First Principles: Entropy, Channel Capacity, and the Fundamental Limits of Communication
2025-03-05Build Shannon's information theory from the ground up: entropy as a measure of uncertainty, source coding theorem, channel capacity, and the noisy-channel coding theorem that established the theoretical limits of reliable communication.

Landauer's Principle and the Thermodynamics of Computation: Why Bits Have an Energy Floor
2025-02-22Explore the deep connection between thermodynamics and information: Landauer's principle that erasing a bit costs kT ln 2 in energy, the Maxwell's demon resolution, and the quest for reversible, energy-efficient computing.