Design a Camera Health Dashboard
Company: Verkada
Role: Software Engineer
Category: System Design
Difficulty: medium
Interview Round: Technical Screen
# Design a Camera Health Dashboard
Design a system that displays how many of one million cameras are healthy. Each camera sends a signal every 20 seconds and counts as healthy when at least one signal has arrived during the most recent 60 seconds.
### Constraints & Assumptions
- Signals may be duplicated, delayed, or arrive out of order.
- The displayed count should have a stated freshness and consistency contract.
- A camera changes state only when its latest accepted signal crosses the 60-second boundary.
### Clarifying Questions to Ask
- Is health based on server receive time or device event time?
- How fresh must the dashboard count be?
- Must users also drill down to individual unhealthy cameras?
```hint Model state transitions
Counting every signal is less important than detecting when a camera moves between healthy and unhealthy.
```
### What a Strong Answer Covers
- Ingestion, identity, deduplication, and latest-signal state.
- Efficient expiration scheduling rather than full scans every second.
- Atomic or reconcilable updates to the aggregate count.
- Dashboard delivery, clock handling, failure recovery, and monitoring.
### Follow-up Questions
1. How would regional outages be distinguished from camera failures?
2. How would you support different heartbeat intervals per camera model?
Overview: Explore event ingestion and expiration-state design for a dashboard that tracks one million camera heartbeats in a rolling 60-second window.