How to set up an on-call rotation at a startup without burning out a small team: what should page overnight, how to rotate fairly, and how to keep alert noise down.
By H. Marcell, Freelance Software Developer
Updated July 17, 2026
H. Marcell is a freelance software developer who builds and runs web services and APIs, and writes about uptime monitoring, incident response, and status-page communication.
On-call is how a small team makes sure someone responds to production problems outside working hours — without it landing on the same person every night. This guide covers what should and should not page overnight, how to structure a fair rotation on a small team, and how to keep the alert volume low enough that on-call stays sustainable.
The bar for waking someone is high: the issue is affecting customers now and cannot wait until morning. A down checkout flow qualifies; a failed nightly report that can rerun does not. Everything else — degraded-but-working services, staging failures, low-priority background jobs — should route to a channel or email for daytime triage. If you would not personally want to be woken for it, do not route it to the pager.
With only a few engineers, keep it simple: one primary per week (or per few days), rotating through everyone, with an optional secondary as backup for when the primary cannot respond. Publish the schedule so everyone knows when they are up. Compensate on-call time in whatever way fits your culture — time off, pay, or reduced daytime load — because unpaid, unacknowledged on-call is how burnout and resentment start.
The best on-call improvement is fewer pages. After each incident, ask whether the alert was actionable and whether the fix can be documented or automated. A runbook entry that turns a 2am investigation into a two-minute known fix pays for itself immediately. Over time, tuning thresholds and eliminating noisy checks matters more than any scheduling tweak.
Separate what pages from what waits by routing alerts by severity in Sandglass: production-down checks go to whatever pages your on-call person, while low-urgency and staging checks go to email or a channel to review during the day. Group checks by environment so the split is clean and nobody is woken by a staging deploy.
The fastest way to ruin on-call is routing every minor staging failure to the same person who handles production outages. When 90% of overnight pages are noise, people stop trusting the pager and miss the one that mattered. Ruthlessly separate "wake someone up" alerts from "look at this tomorrow" alerts.
Decide which failures in this topic actually reach customers before adding any monitoring.
Match each risk to a single HTTP, content, TCP, SSL certificate, or heartbeat check instead of stacking duplicates.
Give each alert one owner and one destination — email, a Slack webhook, or a generic webhook.
Revisit intervals, thresholds, and ownership once a real incident shows what was missing.