Reminders that fire an hour late twice a year, bookings that move when a user travels, reports that disagree about which day an order happened. Almost every date bug comes from losing either the instant or the user's time zone. The rules, the formats, and the cases where UTC alone is wrong.
Storing a future appointment only as UTC is wrong when the rules change: governments adjust daylight saving and offsets with little notice, and the IANA time zone database is updated several times a year to follow them. Keep the local time and zone, and compute the instant when needed.
Book a free 30-minute call. You'll leave knowing what we'd do first and roughly what it costs, whether or not you hire us.
Use IANA zone names, never fixed offsets like -05:00, which ignore daylight saving.
Send timestamps in APIs as RFC 3339 strings with an offset or Z, never as bare local strings.
Do date arithmetic with a time zone-aware library. "Add one day" across a daylight saving change is 23 or 25 hours.
Decide which time zone defines a business day for reports (the customer's, the company's), and write it down.
Run scheduled jobs in UTC, and compute user-facing schedules in each user's zone.
Once a month: what changed in tech that month and what it means for you, from cloud and AI to security and the tools you build with. Every item links to its source. No sales pitch, unsubscribe in one click.
Book a free 30-minute call about it. Bring your setup and your bill; you'll leave knowing what we'd do first and roughly what it costs, whether or not you hire us.
Or keep reading
Timeouts, Retries and Idempotency: The HTTP Habits That Stop Double Charges
Every network call ends in success, failure or "we don't know". The third causes duplicate orders, double charges and stuck jobs. How status codes, timeouts, retries with backoff and idempotency keys fit together, with the limits on API Gateway and Lambda.
Read
Receiving Webhooks Without Losing Money: Signatures, Retries, Duplicates and Order
Payment, auth and email providers tell your app what happened through webhooks. They arrive late, twice, out of order or not at all, and anyone can send a fake one. Using Stripe's documented behaviour as the example, the handler pattern that survives all of it.
Read
As of October 26, 2026. Provided as is, for general information, and accurate to the best of our knowledge on the date shown. Not legal, compliance, tax, financial or other professional advice. Prices, limits and vendor services change; check current vendor documentation before relying on anything here. Terms of use.