Writing
Essays and notes on Postgres, databases, systems, and the occasional graphics experiment.
Essays
Why Every PeerDB Cloud Tenant Still Gets a Private Postgres
Why PeerDB Cloud gives every tenant its own logical Postgres database for its catalog, and why the “boring” choice lets us move faster.
2025
Shader Playground
Recreating the sunset from Turner's The Fighting Temeraire with fragment shaders, one gradient at a time.
2020
Fitness and Freshness
A look at the fitness and freshness metrics of Strava.
2019
Scanline Racer
Speeding up rendering by racing the scanline.
2019
Proving Order Axioms for Dedekind Cuts
Constructing the reals with Dedekind cuts, and proving the transitivity order axiom that Zorich's Mathematical Analysis I leaves as an exercise.
2019
Navier-Stokes equation for dummies
A gentle walk through what the Navier-Stokes equation says about how fluids move, from a conversation at an airport gate.
2018
Cutting Buildings
Geospatial analysis for division of buildings WKTs.
2018
Finding duplicate places in your data
Using a generative core/background language model, after Facebook's Deduplicating a Places Database paper, to find duplicate points of interest.
2018
Structures in jemalloc
Deeper look at the structures in jemalloc memory allocator.
2017
Datastructures for Analytics
HyperLogLog for cardinality and Count-Min Sketch for frequency: two probabilistic data structures that make large-scale analytics cheap.
2017
Cryptography Engineering: Introduction to Cryptography
Reading notes on chapter one of Cryptography Engineering: encryption, Kerckhoffs' principle, authentication, and public-key encryption.
2015
Elsewhere
What is direct I/O, and why does ClickHouse Managed Postgres use it for backups?
ClickHouse
Oct 2026
Postgres on NVMe: performance and the convergence of transactions and analytics
ClickHouse
Sep 2026
What else runs on your Postgres server, and how do we stop it from taking the database down?
ClickHouse
Aug 2026
Postgres FDW: Pushdown is a negotiation
ClickHouse, with David Wheeler, Philip Dubé
Aug 2026
Why strict memory overcommit matters for Postgres
ClickHouse
Aug 2026
What is WAL backpressure, and why does ClickHouse Managed Postgres need it?
ClickHouse
Aug 2026
How we configure huge pages in ClickHouse Managed Postgres
ClickHouse
Jul 2026
How we scale PgBouncer in ClickHouse Managed Postgres
ClickHouse
Jul 2026
What's new in Postgres Managed by ClickHouse: RBAC, Terraform, ClickPipes, extensions, and more
ClickHouse
Jun 2026
Fast, scalable, enterprise-grade Postgres natively integrated with ClickHouse
ClickHouse, with Sai Srirampur
Apr 2026
pg_stat_ch: a PostgreSQL extension that exports every metric to ClickHouse
ClickHouse
Feb 2026
Under the Hood: Building MySQL Change Data Capture in ClickPipes
ClickHouse, with Philip Dubé
May 2025
How ClickHouse Cloud uses AWS Graviton to boost performance and efficiency
ClickHouse, with Francesco Ciocchetti
Jan 2025
PeerDB Cloud is Now in Public Beta!
PeerDB
May 2024
PeerDB Launch Week 1 - 2024
PeerDB
May 2024
Moving a Billion Postgres Rows on a $100 Budget
PeerDB
Feb 2024
PeerDB UI - Deeper Dive: Part 1
PeerDB
Feb 2024
Five Useful Queries to Get BigQuery Costs
PeerDB
Jan 2024
Celebrating New Year with Postgres and Snowflake
PeerDB
Jan 2024
PG Slot Notify: Monitor Postgres Slot Growth in Slack
PeerDB
Dec 2023
Building a Streaming Platform in Go for Postgres
PeerDB
Nov 2023
Using Temporal to Scale Data Synchronization at PeerDB
PeerDB
Jul 2023