A confluence of code, chronicles, and my thoughts.
Explore functional programming in Java, Clojure, and F#.
Delve into the history and uncover the stories that shape our craft.
Some things defy analogy. Relational databases with SQL are one of them.
We programmers are obsessed with preserving our source code. We use Git, a tool that never forgets. Every version, every typo, every parallel universe is captured—because Git understands time.
And yet, we build our most critical systems—those that hold your money, your identity, your future—on databases that forget everything by default. Relational databases with SQL.
Drop table reality
With a single SQL command like DROP TABLE Ledger, an entire financial history can disappear. We build systems—serious ones—that operate on this fragile principle. Systems that manage savings, pensions, invoices. And somehow, we accept that the data in these systems lives in a present tense so narrow it forgets the past by design. There’s no trace of what was—just what is.