Lab-in.app is one of the partner companies I'm part of; the platform is live at lab-in.app. The platform centres on point-of-care testing (POCT) equipment and patient self-testing at home, with the aim of reducing costs for the connected organisations and genuinely supporting patients rather than dragging them through a clunky process.
My role sits mostly on the backend. Together with a colleague I conceive and lay out the architecture for a system that must be uncompromising on two fronts: medically reliable and demonstrably correct, and operationally fast, observable and extensible.
A large part of the work is integrating with EHR systems and sending and receiving HL7 messages. HL7 is a rich but unforgiving standard: every implementation has its own accents, and in a medical context 'the message got lost' is not an acceptable outcome. We therefore store messages with strong redundancy, explicit acknowledgements, retries and dead-letter handling, so nothing disappears unnoticed.
On top of that sits a serious focus on logging and early notification. Anomalies in message streams, delays from devices, or dips at external parties are flagged actively rather than only noticed when a user complains. That shifts the operational stance from reactive to proactive — which in this sector is essential.
Under the hood Lab-in.app leans on Symfony 7.1 with API Platform 3 for the core, Keycloak for identity, Go services for heavy processing and rendering, and a Flutter app on the patient side. That stack diversity is no accident: per layer we pick the tool that genuinely fits, not the tool we happen to use everywhere.
Working in a partner role means I steer not only on code, but also on product direction, contractual agreements with consumers and the way we grow as a company. That adds extra weight — and makes it that much more satisfying when a tricky integration goes live cleanly.
Outcomes
- Robust HL7 messaging with redundant storage, acknowledgements, retries and dead-letter handling
- Built-in early signalling of anomalies and device issues
- One platform across five layers: Flutter app, Symfony with API Platform, Go, Keycloak and PostgreSQL