On-call rotations are the backbone of any reliable service. But most teams I have worked with treat scheduling as an afterthought — a spreadsheet someone updates manually, forgotten until 2am when the wrong person gets paged.
The Problem with Manual On-Call
- Coverage gaps: Nobody realizes the schedule is wrong until an incident hits
- Burnout: The same senior engineer gets paged every night because "they know the system"
- No escalation path: When primary on-call does not respond, nobody knows who is next
- Holiday blindness: Nobody plans for reduced coverage during holidays
What a Good On-Call System Looks Like
1. Clear Rotation Rules
- Primary and secondary on-call, rotating weekly
- No engineer on-call for more than 2 consecutive weeks
- Handoff at a consistent time (we use Monday 10am local)
2. Escalation Policy
- Primary has 5 minutes to acknowledge
- Secondary gets paged at 10 minutes
- Manager notified at 15 minutes
- All tracked automatically
3. Follow-the-Sun for Global Teams
If you have engineers across time zones, use it:
- APAC handles incidents 00:00-08:00 UTC
- EMEA handles 08:00-16:00 UTC
- Americas handles 16:00-00:00 UTC
- Each region has primary + secondary
4. Compensation and Recovery
- On-call bonus per week
- Day off after a night-time incident
- No meetings the day after a major incident
Tools That Work
- PagerDuty: Best overall, but expensive for small teams
- Opsgenie: Good alternative, cheaper
- Simple cron + Slack: For teams under 5 people, this works fine
- Custom Python script: If you want full control
The Template I Use
# On-Call Schedule — Week of [DATE]
## Primary: [Name] — [Phone] — [Slack]
## Secondary: [Name] — [Phone] — [Slack]
## Escalation:
1. Primary (5 min)
2. Secondary (10 min)
3. Engineering Manager (15 min)
4. CTO (30 min)
## Handoff:
- Monday 10:00 local
- Review pending incidents
- Update runbook with learnings
Common Mistakes to Avoid
- Do not put the newest engineer as primary — they will panic and you will escalate anyway
- Do not skip the handoff — context is everything in incident response
- Do not forget about holidays — plan coverage 2 weeks in advance
- Do not make on-call optional — it is a responsibility, not a favor
Want ready-to-use on-call templates, escalation policies, and automation scripts? Check out our Ops Starter Kit:
Your team deserves better than a spreadsheet at 2am. 🌙
Top comments (0)