writing
7 articles
PostgreSQL Locks, Part 3: Advisory Locks and Choosing the Right Lock
sep 2026The last of three parts on PostgreSQL locking: advisory locks and their pitfalls, every lock type in pg_locks, a decision guide for choosing between row, table, advisory, and Serializable, and how to observe locks in production.
PostgreSQL Locks, Part 2: Row-Level Locks
sep 2026The second of three parts on PostgreSQL locking: the four row-level lock modes, why FOR NO KEY UPDATE should be your default, NOWAIT and SKIP LOCKED, deadlocks, and how a blocked transaction actually waits.
PostgreSQL Locks, Part 1: Table-Level Locks and the Lock Queue
sep 2026The first of three parts on PostgreSQL locking: the four lock families, the eight table-level lock modes, what ALTER TABLE really takes, and why a waiting lock can take an application down.
How Write Skew Happens Under Repeatable Read in PostgreSQL
aug 2026A practical example of write skew under PostgreSQL Repeatable Read, followed by a Serializable implementation with bounded retries.
Pessimistic vs Optimistic Concurrency in Postgres
aug 2026A seat reservation race solved with PostgreSQL row locks and conditional updates, using TypeScript and Drizzle ORM.
how a browser loads a page
aug 2019What happens between typing a URL and the page showing up on screen.
understanding flux architecture
jul 2019Unidirectional data flow, and why it makes application state easier to reason about.