January 5th, 2026
Sometimes the best work happens when you’re not at your desk.The Day I Didn’t Write Code Today I couldn’t do any work. I was travelling from Saudi Arabia to India — airports, flights, layovers, the whole thing. No laptop open. No terminal. No commits. But my mind never stopped working.
The Context
Q: What was actually happening? Physically: I was in transit. Mentally: I was solving the recurring logic problem for CommitT. This is the gap between “work” and “thinking about work” — and honestly, the thinking part might have been more valuable.The Problem That Wouldn’t Leave
Q: What was I processing? The recurring task logic. Specifically: How do we make recurring tasks production-ready? This isn’t a small problem. It’s the foundation of how CommitT actually works at scale.What Was Going Through My Mind
The Core Question
If a user creates a recurring task:- Every Monday, 2 PM - 4 PM
- For the next 12 weeks
- Create 12 separate tasks upfront?
- Generate them on-demand?
- Store a rule and compute at runtime?
The Constraints I Was Thinking About
- Database size: 1000 users × 52 weeks × 5 recurring tasks = 260,000 tasks. That’s manageable but not trivial.
- Query performance: “What tasks exist right now?” must be instant. No loops. No computation.
- Timezone handling: A user in India and a user in Saudi Arabia see different “now”. How do we handle that?
- Modification: If a user edits a recurring task, do we update all future instances or just new ones?
- Cancellation: If a user cancels one instance, does it affect the series?
The Mental Model I Was Building
By the time I landed, I had a rough architecture in my head: Option A: Pre-generate all tasks- Pros: Simple queries, no runtime logic
- Cons: Wastes space, hard to modify
- Pros: Flexible, space-efficient
- Cons: Slower queries, complex caching
- Generate tasks for the next 2 weeks
- Keep a rolling window
- Compute on-demand for edge cases
Why This Matters
Q: Why is this so important? Because the entire enforcement system depends on it. If recurring logic is broken:- Tasks don’t exist when they should
- Penalties don’t trigger
- Users think they’re safe when they’re not