Case study 01
Care-home management platform
Two products for UK child care homes, taken from pilot to production.
- Role
- Technical owner: product discovery, architecture, cloud, security and delivery
- Context
- UK startup
- Stack
- FastAPIAuth0PostgreSQLRedisWebSocketsMicrosoft Graph APIAzure OpenAIAzure SpeechLangfuseDockerGitHub ActionsAzure VMs · App Gateway · WAF
Pilot → production
a one-month pilot, then about a year as the live product
Two products
AI-summarised care notes, and a portal for email referrals
4–5 homes
with 5–10 users each, under org → home → user access control
Took it from first requirements to production, owning the architecture, cloud and security throughout.
Key points
- Ownership. The engineer on the one-month pilot, then the technical owner through about a year in production.
- Two products. AI-summarised care notes, and an email-driven referrals portal for care-home managers.
- Notes app. Text or voice notes (Azure Speech), weekly and monthly behaviour insights, personal, home and child-level notes, edit locking and scheduled reports.
- Referrals pipeline. Outlook sync through the Microsoft Graph API, preprocessing and tagging, pub/sub to an Azure OpenAI extraction step, then comments, mentions and email actions in the portal.
- Access control. Organization → home → user multi-tenancy with RBAC on Auth0, designed as one auth service every backend service relies on.
- Platform. FastAPI services, PostgreSQL and Redis, containerized with Docker and shipped by GitHub Actions to Dev and Prod on Azure VMs behind App Gateway, a load balancer and a WAF.
- LLM operations. Langfuse as the prompt store, with tracing and monitoring of every LLM call.
- Scale. 4–5 care homes with 5–10 users each.
The full write-up behind each point follows below.
01
From pilot to production
The client was a UK startup building software for child care homes. I was the engineer on the pilot, and I designed, built and shipped the first version. The pilot ran for a month, and the product then ran for about a year as the live system.
As the product moved to production I stayed the technical owner, setting the architecture, the cloud setup and the security model. It is the broadest project I have worked on: product conversations, architecture, infrastructure, security and delivery, all in one.
02
Care notes, summarised by AI
The notes app lets home managers record the notes they take on each child every day, by typing or by speaking. Voice recordings are saved and converted to text with Azure Speech, and AI summarises the notes and produces insights on a child’s behaviour across a week or a month.
Notes can be personal, home-level or child-level, and roles for managers and admins decide who can see and change what. Edit locking stops two people overwriting the same note, reports can be scheduled, and the real-time pieces, locking and online presence, run over WebSockets.
03
Referrals: from inbox to portal
Care homes receive referrals for children by email. I built the pipeline that brings those emails into the app. A dedicated email service syncs Outlook mailboxes through the Microsoft Graph API, which needed a demanding authentication setup, then preprocesses and tags each message and passes it to the referrals service over pub/sub.
There, an LLM on Azure OpenAI extracts the key information. Langfuse holds the prompts and provides tracing and monitoring for every call, and the portal lays it out so managers can decide quickly. From the portal they can comment on a referral, mention colleagues and act on the email without leaving the app.
04
Requirements that kept changing
Referrals were the more complex of the two products. The client was an early-stage startup, so requirements changed frequently, and I adapted the design as what managers needed became clearer.
05
Access control from organization to user
Access is organised as organization, then homes, then users, with multi-tenancy and role-based access control on top of Auth0. I designed the auth service end to end, and every backend service relies on it instead of reimplementing access rules.
Users are cached in Redis, so repeat requests skip a round trip to the identity provider.
06
Platform, data and operations
The backend is a set of FastAPI services with a controller–manager structure, standardized API schemas and consistent exception handling. Redis pub/sub connects services, and PostgreSQL holds the data, where schema design and a few complex database problems were a large part of the work.
Everything is containerized with Docker and deployed by GitHub Actions to Dev and Prod on Azure VMs, behind Application Gateway, a load balancer and a web application firewall. I also maintained the VMs, handled production load and ran the production deployments.