← All work

Clinical nutrition platform: patient data locked down, AI jobs made dependable

Full-stack and Mobile Engineer (via Hardmax) · Since 2026

The problem

A clinical nutrition company was building an AI-assisted platform: a web app where clinical nutritionists plan and review, and a patient app on the same API. The clinician makes every patient-specific decision; the system retrieves references, calculates and drafts for review. That means sensitive health data on patients’ phones, and long-running AI work in production that must never be lost, doubled or left unmetered.

What I did

I joined the team in September 2026 and worked across the stack. In the patient app, built with React Native and Expo, I moved everything stored on the device into encrypted stores under one device-only key: the cached clinical data in SQLCipher, the settings in encrypted key-value storage, and both wiped when a different person signs in. Writes made without a connection go into an outbox and replay with an ID the phone generates, so a retry never logs the same meal twice. Response schemas shared with the API turn a broken contract into a visible error during development, and component tests cover the main patient flows.

On the API, I moved the long-running work (streamed chat replies, meal-plan runs, image generation and background workers) onto Effect, so every job has an owner that finalizes it, meters its AI usage and shuts down cleanly. Each of those lifecycles is traced, and the outbox claim is persisted so several replicas never send the same event twice. The clinician’s AI tools are scoped to the patient in context, so an assistant working on one record cannot reach another.

The outcome

In the first month I merged 57 pull requests across the patient app, the API and the delivery pipeline. Every finished TestFlight build and every pilot deploy is now tagged and released from CI, with the workflow actions pinned to exact commits. The patient app is in testing on TestFlight.