Loading...
Loading...
A manager monitoring alerts across their org needs more than a flat list. They need subtree traversal, server-side pagination, and idempotent dismiss actions — all built on a self-referential Django model.
Field Note — Alerts Monitoring Dashboard
---
This project started as a take-home engineering assignment and evolved into a portfolio piece that demonstrates how to handle a problem most backend engineers encounter but few discuss: querying hierarchical data at scale.
The problem is deceptively simple: a manager needs to monitor alerts across their team. But "their team" might mean direct reports only, or it might mean the entire reporting subtree — their direct reports, their direct reports' direct reports, and so on. For a large organization, this subtree can be thousands of people. Loading all their alerts client-side is impossible. Filtering, searching, and paginating has to happen on the server.
---
A flat list of alerts is fine for a single user viewing their own alerts. But a manager needs context:
All of this has to be fast, correct, and scalable.
---
The frontend is built with React and TypeScript, with fully controlled filter state. Every filter change — severity toggle, search input, subtree toggle, page navigation — triggers a new API call and updates the URL query parameters. This makes every filter state shareable and bookmarkable.
interface FilterState {
scope: "direct" | "subtree";
severity: AlertSeverity[];
}