457: Time Zones with Sally Hall
Episode
46 min
Read time
2 min
Topics
Software Development, Science & Discovery
AI-Generated Summary
Key Takeaways
- ✓Test Strategy for Time Zones: Write tests using time zones different from your local environment and CI server (like Chicago time when working in Eastern) to catch time zone bugs locally before deployment, preventing false positives from matching environments.
- ✓Database Performance for Scheduling: Postgres materialized views with 8 million time slots refresh faster than Ruby calculations that took 45 minutes. Use database-level time math with debounced refresh jobs limited to one concurrent execution for appointment scheduling systems.
- ✓Time Object Math Rules: Never manually add offset hours to Ruby time objects—the Unix timestamp already handles conversions automatically. Adding offsets creates incorrect times because you're shifting the underlying timestamp when no math is needed, only metadata changes.
- ✓Display Strategy for Multi-Timezone Apps: Always show time zone abbreviations next to timestamps (like 9:00 AM EST) when users and service providers operate across different time zones, preventing confusion about whether times reflect user or provider location.
What It Covers
Sally Hall and Joelle Kenville explore time zone complexity in software development, covering daylight savings bugs, scheduling systems, time-of-day calculations, database optimization strategies, and why developers should never write custom time math.
Key Questions Answered
- •Test Strategy for Time Zones: Write tests using time zones different from your local environment and CI server (like Chicago time when working in Eastern) to catch time zone bugs locally before deployment, preventing false positives from matching environments.
- •Database Performance for Scheduling: Postgres materialized views with 8 million time slots refresh faster than Ruby calculations that took 45 minutes. Use database-level time math with debounced refresh jobs limited to one concurrent execution for appointment scheduling systems.
- •Time Object Math Rules: Never manually add offset hours to Ruby time objects—the Unix timestamp already handles conversions automatically. Adding offsets creates incorrect times because you're shifting the underlying timestamp when no math is needed, only metadata changes.
- •Display Strategy for Multi-Timezone Apps: Always show time zone abbreviations next to timestamps (like 9:00 AM EST) when users and service providers operate across different time zones, preventing confusion about whether times reflect user or provider location.
Notable Moment
The team discovered their appointment scheduling system generated 8 million possible time slots, initially worrying about database size, but found storing them in a materialized view proved far more efficient than attempting Ruby-based calculations that consumed 45 minutes per operation.
You just read a 3-minute summary of a 43-minute episode.
Get The Bike Shed summarized like this every Monday — plus up to 2 more podcasts, free.
Pick Your Podcasts — FreeKeep Reading
More from The Bike Shed
We summarize every new episode. Want them in your inbox?
Similar Episodes
Related episodes from other podcasts
10% Happier with Dan Harris
Apr 10
What To Do When Life Won't Let Up | Sebene Selassie and Jeff Warren
The Changelog
Feb 13
Han shot first (Friends)
We Study Billionaires
Feb 8
TIP790: Wealth Beyond Money w/ Thomas Mueller-Borja
Shop Talk Show
Feb 2
700: Popover Web Component, Bugs in Blocks, and Where’s Vue?
Latent Space
Jan 23
Captaining IMO Gold, Deep Think, On-Policy RL, Feeling the AGI in Singapore — Yi Tay 2
Explore Related Topics
This podcast is featured in Best Cybersecurity Podcasts (2026) — ranked and reviewed with AI summaries.
Read this week's Software Engineering Podcast Insights — cross-podcast analysis updated weekly.
You're clearly into The Bike Shed.
Every Monday, we deliver AI summaries of the latest episodes from The Bike Shed and 192+ other podcasts. Free for up to 3 shows.
Start My Monday DigestNo credit card · Unsubscribe anytime