DevLog
Building in Public with Claude Code
Daily dispatches from the build floor. Real projects, real problems, real solutions — all built with AI-assisted development.
Itemized Payment Receipts on Both Portal and Manual Routes
How I built itemized payment receipts for both card and manual payment routes, including the rounding fix that made them add up.
Extra-principal payments and principal-only payments in DeedStack
How extra-principal and principal-only payments work in DeedStack, including allocation order and refund behavior.
Deploying a visitor beacon with salted IP hashing to production
How I deployed a visitor beacon to production with salted IP hashing and verified it through live traffic without leaking query strings.
When Your Validation Dataset Is Your Implementation
A visitor classifier failed validation when the acceptance gates were defined against the very implementation being tested.
Fixing Square payment captures, idempotency, and refunds
Fixed non-transactional Square captures, time-based idempotency keys that double-charged tenants, and revenue queries that excluded refunds instead of netting them.
Analytics dashboard cut from 67s to 1.36s with daily rollups
How I cut an admin analytics dashboard from 67 seconds to 1.36 seconds using daily rollup tables and a backfill script.
Fixing payment reconciliation and loan term validation
How I fixed payment reconciliation, loan term validation, and a multi-tenant leak that the audit missed.
Fixing Square payment idempotency and transactional capture
How I wrapped Square payment captures in real transactions and replaced time-based idempotency keys with deterministic hashes.
Residential-Proxy Fleet Contaminated the Browser Census
A residential-proxy fleet ran real browsers and contaminated the page-load census, hiding that real traffic was 0.13% of the total.
OpenProcess succeeds on a terminated process until the handle closes
OpenProcess keeps succeeding on a terminated process until the handle closes, so GetExitCodeProcess is the check that matters.