Skip to content
← All work
Healthcare, regulated softwareJuly 2025–April 2026Contract work, remote; technical lead for five mobile developers

Leading five mobile developers on Class IIa medical software

I led five mobile developers on Class IIa medical software. The app handles patient data without internet and syncs with the smart injector over Bluetooth; errors from manual data entry fell by 40%.

Florio GmbH (a Sobi subsidiary, Munich) · official job title: AI-First Lead React Native Developer

The situation

florio HAEMO is Class IIa medical software for people living with haemophilia. Doctors use a web dashboard alongside it. Patients can record their treatment even with a weak signal. The job also included the Bluetooth connection to the smart injectors.

What made it hard?

Development of a regulated app had to speed up, and every change still had to be checkable afterwards.

What was I responsible for?

  • I was responsible for making patient data work without internet. We used WatermelonDB and RxDB for that.
  • I was responsible for the Bluetooth (BLE) modules for the smart injectors, written in Swift and Kotlin.
  • I was responsible for building the doctors' dashboard. We used React Server Components, and access was controlled by role.
  • I led five mobile developers. We worked from written requirements and tests prepared in advance. Before each release we used Maestro to check that a user could do their tasks from start to finish. We also re-tested features that had worked before.
  • I brought four internal web products onto one shared UI foundation.
  • I used AI tools to support development, and documented the results of the checks before handover.

Decisions and reasons

Bluetooth modules built specially
The data exchange with the injectors needed finer control than the ready-made module allowed.
Two data stores, two jobs
WatermelonDB handles saving on the device and RxDB handles syncing, so each job gets its own tool.
A written requirement before every task
With a medical device, the auditor works from the written requirements.

Results

  • After the injectors began syncing data over Bluetooth, errors from manual data entry fell by 40%.
  • The code downloaded to the browser became 45% smaller on the most important web screens.
  • The app starts 1.5 seconds faster.
  • The pre-release checks now produce a written record that can be looked up later. Before, they were done from a checklist people kept in their heads.

When this matters to you

  • If your app connects to a measuring device, a gate, a printer or a sensor, I write the phone-side code that talks to it myself, in Swift and Kotlin.
  • If your users do not always have internet, I plan for working offline from the start.
  • If you work in a regulated or sensitive field, traceable releases are part of how I work, and I can lead the team that builds them.

Links