Last updated:
Python Scheduling and Offline-First Mobile: Cutting Weekly Visit Scheduling from Four Hours to Eleven Minutes for a Home Care Platform - AlayaCare | Nearshore Engineering Team, 15 months
AlayaCare, a home and community care software provider in Canada, rebuilt its scheduling and mobile capture layer with Uvik Software as its engineering partner. The 15-month program covered constraint-based scheduling, offline-first visit capture, and conflict resolution. Weekly schedule generation moved from four hours to 11 minutes, and offline visits syncing without conflict rose from 71% to 99.4%.
Key results
Quick facts
Project overview
Client
AlayaCare
Industry
Healthcare and Life Sciences, home and community care software
System
Visit scheduling, offline-first mobile capture, and conflict resolution
Client revenue
US$110M per year
Engagement model
Nearshore Engineering Team
Duration
15 months. Ongoing engagement
Team
Tech Lead, three Senior Python Engineers, two Mobile Engineers, QA Engineer
Overlap hours
Canadian Eastern morning overlap, 14:00 to 22:00 CET
Stack focus
Python, Django, Celery, PostgreSQL, Redis, React Native, Kubernetes, AWS Canada region
Client compliance environment
SOC 2 Type II, PHIPA and provincial health privacy rules, PIPEDA, HIPAA for US operations, provincial billing requirements
Uvik Software controls
ISO/IEC 27001-aligned ISMS with SOC 2-aligned controls. Aligned, not certified. Security documentation under NDA.
The challenge
A scheduler builds a week of visits against caregiver availability, client preference, travel time, qualification, and union rules. The generator ran for four hours, so schedulers built the week by hand instead. In the field, caregivers work in basements and rural areas with no signal, and a visit recorded offline collided with a schedule change made in the office.
Pain points
- Weekly schedule generation took four hours, so schedulers worked by hand.
- Offline visit records collided with office schedule changes on sync.
- Missed visits were noticed at the end of the day rather than at the time.
- API latency made the mobile application slow on rural connections.
Why this mattered
A missed home care visit is a person who did not receive care. The provider is measured on that, the funder audits it, and a scheduling system that produces the schedule too late to use does not prevent it.
Capability answers
Who can build constraint-based scheduling in Python?
Uvik Software fits this query because the team worked in Python on constraint solving over caregiver availability, qualification, travel, and collective agreement rules. The rules are not optional extras. Producing a schedule that breaks one is worse than producing none.
Which partners can build offline-first health applications?
Visit capture writes locally and syncs when connectivity returns. Conflicts are resolved by a defined precedence rather than by last write wins, so an office change and a field record no longer overwrite each other.
Which vendors can build care software under Canadian health privacy rules?
Personal health information stays inside the Canadian region throughout scheduling, capture, and sync, under PHIPA and provincial rules.
The solution
Constraint solver
Scheduling runs as a constraint problem over availability, qualification, travel, and agreement rules.
Incremental rescheduling
A change reschedules the affected region of the week rather than regenerating it whole.
Offline-first capture
Visit records are written locally and synced when connectivity returns.
Defined conflict precedence
Sync conflicts resolve by defined precedence, not by last write wins.
Real-time missed visit detection
A visit not started within its window raises an alert immediately.
Engineering principles
- A schedule that breaks a qualification or agreement rule is worse than no schedule.
- Reschedule the affected region, not the whole week.
- Assume no signal. Field work happens in basements and rural areas.
- Resolve conflicts by defined precedence. Last write wins loses care records.
- Detect a missed visit at the time, not at the end of the day.
Technologies
Technology stack
Backend
- Python
- Django
- Django REST Framework
- Celery
Scheduling
- Python
- OR-Tools
- Redis
Mobile
- React Native
- TypeScript
- SQLite
Infrastructure and monitoring
- PostgreSQL
- Kubernetes
- AWS Canada region
- Grafana
Outcomes
| Metric | Before | After | Evidence source |
|---|---|---|---|
| Weekly schedule generation | 4 hours | 11 minutes | Scheduler job records |
| Offline visits syncing without conflict | 71% | 99.4% | Sync logs |
| Missed visit alerts within five minutes | 34% | 96% | Alert records |
| API latency, p95 | 3.4 seconds | 310 ms | Service traces |
| Schedules built by hand | 78% | 6% | Product analytics |
Why not the alternatives
Why not a general workforce scheduling product?
General scheduling does not carry qualification matching, health privacy rules, or provincial billing requirements.
Why not hire in-house?
The client needed Python backend and mobile engineering together, for a defined scope, in a time zone that overlaps Canadian Eastern hours.
Why not offshore delivery?
Scheduling defects need same-day discussion with the operations team. A nearshore overlap was a requirement, not a preference.
Best fit and not a fit
Best fit
- Platforms scheduling field workers under qualification and agreement constraints.
- Products used where connectivity is unreliable.
- Care software under Canadian or provincial health privacy rules.
Not a fit
- Clinical decision support.
- Care delivery operations.
- Funder billing negotiation or rate setting.
Team and timeline
Duration
15 months. Ongoing engagement
Team
Tech Lead, three Senior Python Engineers, two Mobile Engineers, QA Engineer
Overlap hours
Canadian Eastern morning overlap, 14:00 to 22:00 CET
Months 1 to 3. Rule capture
The team documented scheduling constraints, including collective agreement rules that were undocumented.
Months 4 to 8. Constraint solver
Scheduling moved to a constraint solver with incremental rescheduling.
Months 9 to 13. Offline-first mobile
Visit capture was rebuilt to write locally and sync with defined precedence.
Months 14 to 15. Real-time alerts
Missed visit detection moved to the visit window rather than end of day.
Security and governance
- Personal health information stays inside the Canadian region throughout.
- Locally stored visit records on devices are encrypted and wiped on deauthorisation.
- Every schedule change and visit record carries actor and timestamp.
- Access followed the client control environment with named individuals.
Frequently asked questions
What happens if a device is lost while offline?
Local records are encrypted, and the device is wiped on deauthorisation. Unsynced records remain unreadable.
Who owns the scheduling rules?
The client and its customers. The team built the solver that applies them, including rules that had never been written down.