Certifying vital-sign measurement, from the inside.
I was part of the engineering team at I-Virtual that built Caducy — contactless vital-sign measurement from a 30-second selfie, using rPPG (remote photoplethysmography): reading a pulse from ordinary camera footage instead of a contact sensor. In January 2023, Caducy became the first medical device in the world to receive CE Class IIa certification for vital-sign measurement via webcam.
Caducy's measurement pipeline runs remotely: a CDN-delivered React module and an Angular module capture and stream camera frames over WebSocket to a backend service doing MediaPipe-based face tracking and rPPG extraction. Saphere is that engine — heart rate, respiratory rate, HRV, and stress from a plain camera feed — packaged as an API and SDK (Saphere Core) so other products — insurers, wellness platforms, connected devices — could integrate the same measurement without building it themselves.
Five years there as a software engineer, in a medical environment held to strict requirements for reliability, quality, traceability, and validation (QMS). Day to day, that broke down into four areas:
Doing it properly, every step.
I hold a Master's degree in Electronics and Automation, with a specialization in Data Analysis and Signal Processing — the academic root of most of what shows up in the work below: filtering, feature extraction, and turning a noisy signal into a number someone can trust.
Most of my work lives where camera hardware meets a product someone actually has to trust with their health data — writing the native plugin that captures and streams camera frames, the client app (Angular, or a React module shipped via CDN) that displays the result, and the NestJS backend that computes and stores it — correctly, and only with consent.
What's actually under the hood.
Native & Capture
- Capacitor native plugin architecture
- MediaPipe Face & Pose Landmarker
- Real-time camera-frame streaming (WebSocket)
Application
- Angular (zoneless, signals) & React
- Ionic / Capacitor & React Native
- TypeScript
Backend & Infra
- NestJS, Node.js
- JWT auth, class-validator
- Nx monorepo
- GitLab CI/CD → fastlane → Play Store
- GitLab CI/CD → Portainer → server
Quality & DevOps
- Custom test framework, built from scratch
- Jest — unit & performance testing
- Docker, containerized dev environments
- Regulated software validation (QMS)