A Wall of Errors and What Lived Behind It
Production debugging is archaeology. The errors are symptoms. The causes live in migrations never run, CSP rules never updated, caches never cleared.
InfrastructureEighteen Thousand Lines in Fourteen Files
Settings.vue was 2,322 lines — one file handling billing, team management, notifications, and widget config. It left at 293. This is how that happened.
DesignFive Hundred Colors That Promised the Design Would Never Change
Five hundred hardcoded color values. Each one a promise that the design will never change. The design always changes.
DesignFourteen Services, Zero Interfaces
Fourteen services, none with interfaces. Thirty-four files touched. The architecture now says what it means: consumers depend on contracts, not implementations.
DesignOne Header That Prevented a Class of Bugs
The frontend never explicitly told the backend which tenant it was acting for — it just hoped the middleware could figure it out. One header, added once, ended that.
BuildingOne Missing Space, Zero Emails Delivered
All quote emails were silently failing. The SES Source header was missing a single space. One character, zero emails delivered, zero errors shown to the user.
Building