Computer Science

16
Jul

Memory models and why they matter for concurrent code

Concurrent code fails in ways that are hard to reproduce and hard to reason about. A lot of those failures
3 min read
10
Mar

Distributed consensus without the PhD

Distributed consensus gets treated like graduate-level material. The Paxos paper is famously hard to read. Raft was explicitly designed to
3 min read
14
Nov

Write-ahead logs: the idea behind most durable systems

If you've worked with Postgres, SQLite, or pretty much any serious storage system, you've encountered the
2 min read
06
Sep

Latency vs throughput: they're not the same thing

These two get conflated constantly, including by people who should know better. They're related but they measure fundamentally
2 min read
18
Jul

Using Aeron Cluster as a source of truth

Most teams reaching for a consensus system are looking for coordination, leader election, distributed locks, configuration management. Aeron Cluster handles
3 min read
12
May

Consistent hashing: how distributed systems route without a coordinator

When you need to distribute data across multiple nodes, the first instinct is to use a hash function: take a
2 min read
10
Nov

Go generics in practice: what they're actually good for

Go generics landed in 1.18 and the community spent about six months either overclaiming or dismissing them. The reality
2 min read
15
Sep

Cap'n Proto vs Protobuf: why we switched

We'd been using Protobuf for years. It worked. Nobody complained. Then we started hitting the edges: schema migrations
3 min read
29
Jul
Apache Kafka: How It Actually Works

Apache Kafka: How It Actually Works

Most people encounter Kafka through job postings or architecture diagrams where it sits between everything. Someone always calls it a
3 min read
17
Apr
Ring Buffers vs. Double-Ended Linked Lists

Ring Buffers vs. Double-Ended Linked Lists

Not every data structure decision needs a framework. Sometimes it's just: do I need a fixed-size, cache-friendly loop,
2 min read