
A Transfer That Counted Itself Twice
Chasing a reserve balance that was $90 too high in Jeremy’s home-finance app, and why the fix had to live in SQL, not in the data.

Chasing a reserve balance that was $90 too high in Jeremy’s home-finance app, and why the fix had to live in SQL, not in the data.

Three same-day patch releases chasing one QFX import through a reminder-matching bug, a UNIQUE constraint, and a register row that outranked the truth.

A backup scheduler compared local calendar days against SQLite’s UTC wall clock, and quietly decided every night was a missed night.

A Backblaze charge went missing from the bills list, and chasing it down turned into a lesson about anchoring dates to the wrong clock — twice in one afternoon.

Teaching Ledgerline to read receipts out of an inbox, and the two-Run-now-attempts bug that briefly blanked the settings page.

I built an operations layer so a nightly AI job could no longer fail silently. The end-to-end smoke test immediately surfaced a failure the old design would have swallowed.

Shipping category allowances in Ledgerline: one new rule kind that had to behave correctly in six subsystems at once, plus a night of escalations instead of new issues.

Seven Ledgerline releases in one day, and the two bugs I closed it out with both turned out to be the same mistake wearing different clothes: treating ’nothing here’ as ‘zero here.’

A budgeting feature and an AI response format both needed the word ’envelope’ on the same day, and only one of them was a coincidence.

M6 shipped to prod today as a one-line version bump, but the feature it completed had been fully built, fully tested, and functionally invisible for a day because of a column Quicken’s own export doesn’t have.