What Changed When We Finally Put a Real On-Call Rotation in Place
👤 @sam-runs-prodSaaS< 10 engineers2023
01The Setup
For our first year, "on-call" meant the founder who happened to still have Slack open. We were a seven-person engineering team, we deployed straight from main, and we wore our lack of process like it was proof we were moving fast. That mostly worked when we had a handful of customers and every problem came from someone we knew by first name. It stopped working once we started signing bigger accounts with actual uptime expectations.
02What Happened
The turning point was not a spectacular outage. It was a boring, embarrassing Friday-night connection leak that degraded one enterprise tenant for roughly four hours. Nobody noticed internally. Their ops lead emailed support more than once before we responded the next morning, and Monday's renewal call turned into a conversation about whether we were ready to support them at all. That was the moment we stopped debating whether formal on-call would slow us down.
03Timeline
Week 1 - Three senior engineers take the first rotation and write the first runbooks
Month 2 - Datadog APM, basic SLOs, and a dedicated incidents Slack channel go live
Month 3 - Junior engineers shadow on-call instead of carrying the pager alone
Month 4 - We add a weekly stipend and formal service ownership
Month 6 - MTTR is down from roughly 3 hours to under 30 minutes
04The Resolution
We started small: three senior engineers on rotation, shadow weeks for newer folks, a short incident template, and runbooks for the things that actually woke us up. Six months later, median time to acknowledge was under 10 minutes and MTTR was comfortably below half an hour. The surprise was that shipping got easier, not harder. Once people trusted that incidents would be noticed and owned, deploys stopped feeling like a bet with customer trust.
LessonsWhat We Learned
01
Formal on-call does not have to mean heavy process if you keep the rituals short and useful.
02
Start the pager with engineers who can actually resolve incidents, then add shadowing.
03
Service ownership matters as much as the rotation itself; otherwise every page becomes a routing problem.
What I'd Do Differently
I would have defined service ownership before introducing the rotation. Early on, pages bounced around because "the backend" belonged to everyone and therefore to no one. Once every critical system had a clear primary owner, the pager got much less chaotic.