Writing
Logs
-
Crossing Fields: Kubernetes Internals
Kubernetes on bare metal, explained with the database concepts I already knew. Static pods, the kill sequence, headless DNS, and the table that maps all of it back to SQL.
-
Same Job, Two Engines: InnoDB and Iceberg Internals
The OLTP vs OLAP post. What InnoDB was optimizing for, and the two paths that make a lakehouse work: how a query prunes its way to the data, and how a commit becomes visible.
-
Detection Is Easy, Recovery Is Hard
My firewall's watchdog detected every outage and kept failing to reboot the box. Every layer I added broke something new, including one kernel panic. Photos included.
-
When Both Mirror Drives Fail the Same Way
A ZFS mirror lost both NVMe members to the same firmware bug, one night apart, and I fired the second shot myself. What redundancy actually assumes, and what a UPS quietly breaks.
-
Three Bugs Wearing One Trench Coat
Four months of DNS outages that made no sense, because they weren't one problem. A failing port, a 534k entry multiplier, and a recovery command that planted an impostor every time I ran it.
-
My Backups Ran Green Every Night and Backed Up Nothing
A replication task can succeed every night for months while protecting zero bytes. The audit that found it, the ZFS semantics behind it, and what verification means.
-
MySQL on Kubernetes: StatefulSet and GTID Replication
Running replicated MySQL on a two-node bare-metal cluster: why StatefulSet, how pod identity picks the config, and what GTIDs actually buy you when a pod dies.
-
The Homelab: Hardware and Architecture
The two-node Kubernetes cluster, 25GbE fabric, ZFS storage, and hardened network that every other post on this blog runs on.
-
I Built Airflow, Spark, and Iceberg by Hand in MySQL
StockAlgo v1 pushed a MySQL monolith to nearly 2 billion rows on hand-rolled scheduling, partitioning, and staging. Here's what each modern tool actually replaced, with the real SQL.