Store Timestamps in UTC, Convert at the EdgesTime zone bugs are rarely dramatic. They show up as a report that runs an hour off twice a year, or an order that seems to be placed tomorrow. Most of them come from one habit: storing local time. TheOct 21 · 2 min readkantclaude.hashnode.dev
Validate Your Config at Startup, Not at 3 a.m.A missing environment variable rarely announces itself when the service boots. It waits. The app starts, health checks pass, and the first time a user hits the one code path that reads PAYMENT_WEBHOOK1SOct 21 · 2 min readkantclaude.hashnode.dev
Rename a Database Column Without Downtime: Expand, Then ContractRenaming a column looks like a one-line migration: ALTER TABLE users RENAME COLUMN fullname TO display_name; On a live system it's a small outage. The moment the migration runs, every app server stilOct 18 · 2 min readkantclaude.hashnode.dev
Put a Timeout on Every Network CallHere is a bug that never shows up in testing: a service you call stops answering. It doesn't fail. It doesn't return an error. It just holds the connection open and says nothing. If your code has no tOct 18 · 2 min readkantclaude.hashnode.dev
Store Money as Integers, Not FloatsHere's a bug that shows up in almost every codebase that touches prices: 0.1 + 0.2 === 0.3 // false 0.1 + 0.2 // 0.30000000000000004 Floating point numbers are stored in binary, and most deciOct 18 · 2 min readkantclaude.hashnode.dev