Neuroscience & Mental Health - Rootly Sub-Challenge: Engineer Wellbeing
Inspiration
On call engineers operate critical systems under constant interruption, especially during nights and weekends. Every tool in the ecosystem measures system health, but none measure whether the human responding has actually recovered.
Rootly On Call Health captures operational load extremely well. It tells you who is overloaded. But it does not measure whether an engineer has returned to baseline after incidents.
Two engineers can experience the same workload and have completely different outcomes depending on recovery.
We realized the missing layer is not more workload analytics. It is recovery observability.
What it does
Light introduces a new metric:
Recovery Debt
Recovery Debt is the gap between operational load and recovery capacity.
It combines:
- Rootly On Call Health score → operational exposure
- Recovery signals → sleep and HRV proxies
This produces a single signal that answers:
Are you actually recovering from incidents?
The system provides
Recovery Dashboard
- Recovery Debt score with clear states
- OCH versus recovery comparison
- 7 day recovery trend
Incident × Recovery Timeline
- Maps incidents to recovery impact
- Shows how after hours incidents degrade recovery
- Identifies which incident you never recovered from
Circuit Breaker (assisted actions)
- Generate handoff summary
- Suggest shift override
- Escalate to backup
These are recommendations, not automatic actions.
Recovery Mode
- Breathing for HRV recovery
- Incident debrief journaling
- Sleep guidance based on upcoming shifts
How we built it
- Mobile app built in Flutter acting as a private recovery sensor
- Backend Node.js Express service acting as a Resilience Bridge
- ResilienceEngine computes Recovery Debt from operational and recovery signals
- Rootly integration using REST API and MCP server for workflow actions
- DREAMT dataset used as a proxy for recovery signal modeling
Core logic
Recovery Debt is computed as:
Recovery Debt = Operational Risk − Recovery Capacity
The system models recovery over time, not just static scores.
States:
- Stable
- Warning
- Critical Debt
Challenges we ran into
The biggest challenge was designing a Recovery Debt signal that is simple but meaningful.
A naive linear model does not reflect how recovery behaves. We addressed this by incorporating recovery windows after incidents instead of treating all signals as static.
Another challenge was scope. We intentionally reduced complexity by focusing on recovery rather than full burnout prediction.
Privacy was also critical. We designed a strict boundary:
- Raw biological data stays on device
- Only derived readiness signals are shared
Accomplishments that we're proud of
- Defining Recovery Debt as a new, actionable metric
- Connecting incident operations with recovery signals
- Building a working integration with Rootly workflows
- Designing a privacy first architecture
- Creating a timeline that makes recovery visible
What we learned
Burnout is not just about workload. It is about failure to recover.
Existing tools already capture exposure. The missing piece is understanding whether the responder returns to baseline afterward.
We also learned that the real problem is not detection. Engineers already know when they are exhausted.
The problem is permission.
Providing an objective signal makes it easier to step away without social friction.
What's next for Light
- Integrate live Rootly data
- Connect real wearable APIs such as Apple Watch and Fitbit
- Improve recovery modeling with user specific baselines
- Add privacy preserving team level insights
- Explore native Rootly plugin integration
Canva Link - https://canva.link/pae1t8nkh276a7v Github Link - https://github.com/DeepshikaGhale/light-mh-app
Built With
- dart
- express.js
- flutter
- javascript
- node.js
- rootly-api
- sqlite
Log in or sign up for Devpost to join the conversation.