Qalab Hassnain AghaCo-Founder & CTO

Healthcare · IoT · SaaS

upLYFT

Physical Rehabilitation Platform

FastAPIFlutterBLE 5.0AzurePostgreSQLWebSocketsAI/MLDocker
upLYFT (Physical Rehabilitation Platform): upLYFT · Motion Tracker app and clinician dashboard screenshot
upLYFT · Motion Tracker app and clinician dashboard

My roleI designed the ingestion and analytics architecture and built the backend and web app.

A clinician watches a patient walk while BLE wearables stream motion data at 200Hz+ per device: a reading every 5 milliseconds. The dashboard has to show joint angles and gait symmetry live, for hundreds of sessions at once.

The first tutorial-style sketch (sensor, API, one database insert per reading) would have melted PostgreSQL before 50 devices.

  • Sub-100ms from sensor to dashboard.
  • 500+ concurrent sessions on Azure.
  • Clinical-grade analytics, not just raw graphs.
BLEstreammetricsBLE wearables200Hz+ per deviceMobile appFlutter · BLE 5.0IngestionWebSockets · UDP · FastAPIsub-100msAIKinematics MLjoint angles · gait symmetry92%+ accuracySession storePostgreSQL · AzureLive dashboardsclinician · athlete · admin500+ concurrent sessions
  1. BLE wearables200Hz+ per device
  2. Mobile appFlutter · BLE 5.0
  3. IngestionWebSockets · UDP · FastAPIsub-100ms
  4. Kinematics MLAIjoint angles · gait symmetry92%+ accuracy
  5. Session storePostgreSQL · Azure
  6. Live dashboardsclinician · athlete · admin500+ concurrent sessions
High-frequency sensor pipeline into live clinical analytics
  1. D1The ingest path does almost nothingAnything synchronous runs 200 times a second per device. Ingest validates trivially, buffers and acknowledges; the kinematics ML and storage run in consumers off that buffer.
  2. D2Batch every database writeA writer flushes each session buffer at 250 ms or 500 readings, whichever comes first. At 50 devices that turns 10,000 transactions per second into about 200 bulk inserts.
  3. D3Pick transport by loss toleranceWebSockets where a lost reading must be recovered; UDP with sequence numbers for the highest-rate live streams, where a reading is stale before TCP could retransmit it.
  4. D4Time-partitioned tables with BRIN indexesSensor data arrives in time order, which BRIN exploits at a fraction of a B-tree's size.
92%+Movement classification accuracy
Clinician onboarding time−60%
Before
After
~60% faster
<100msSensor to dashboard
500+Concurrent sessions
  • At high frequency, every per-reading operation is a scaling bug.
  • Choose the transport per stream, not per project.
What problem did upLYFT solve?

BLE wearables produce 200Hz+ motion data per device. Clinicians needed clinical-grade movement analytics live during sessions, with hundreds of sessions running at once.

Who built upLYFT, and how does it work?

I did (Qalab Hassnain Agha). I designed the ingestion and analytics architecture and built the backend and web app. How it works: An end-to-end pipeline: BLE ingestion over WebSockets and UDP, real-time kinematics ML (joint angles, gait symmetry, power, load) and role-based live dashboards, deployed on Azure. Stack: FastAPI, Flutter, BLE 5.0, Azure, PostgreSQL, WebSockets, AI/ML, Docker.

What results did upLYFT achieve?

200Hz+ per-device ingestion, sub-100ms end-to-end latency. 500+ concurrent sessions supported. 92%+ movement classification accuracy. ~60% faster clinician onboarding.

Can I hire Qalab to build something similar to upLYFT?

Yes. Contracts from $25 an hour, full-time remote from $3,000 a month, fixed-price prototypes from $600 and builds from $2,000, and fractional CTO retainers from $800 a month. Book a free 30-minute call and I will tell you honestly whether and how I would build it.