Case study 02
Device-Lifecycle Platform
One auditable system replacing spreadsheet-and-email operations for a German medical-device manufacturer.
Team project at AlgoSoft; I led development as top contributor (1,100+ commits) across backend and frontend. The RAG chatbot was co-built.
Context
A German neurofeedback medical-device manufacturer ran its fleet on spreadsheets and email: device registrations, warranty renewals, support requests, repair logistics. AlgoSoft builds their device-lifecycle platform; I led its development as top contributor with 1,100+ commits.
The platform covers device registry, warranty administration, support ticketing, and EU-MDR-oriented quality management for 445 devices across 417 clinics, through admin, customer, and white-label reseller portals.
What I built
Warranty-renewal pipeline
- QStash-scheduled automation sends four escalating EN/DE-localized reminder emails from 90 days down to 1 day before expiry.
- Deduplicated by a unique-indexed reminder log, with a full delivery audit trail.
AI support-inbox triage
- A background IMAP poller hands each inbound email to OpenAI, which parses it into a structured ticket: urgency, problem type, and device serial automatically matched against the registry.
- AI-suggested agent assignment routes tickets to the right person before anyone reads the inbox.
RAG support chatbot (co-built)
- Retrieval over Upstash Vector with BGE-M3 embeddings and cross-encoder reranking.
- SSE-streaming widget with token-by-token output, clickable source citations, and graceful loading, error, and retry states.
Cross-system sync
- A reseller service mirrors device movements from two independent deployments into the central registry.
- A Shopify-to-platform event broker (Firebase Functions, Firestore, Cloud Tasks) converts paid orders into customer records, license issuance, and provisioning tasks. Every event is HMAC-verified, idempotent, and auto-retried.
Real-time portals
- Socket.io across all three portals: live device-movement updates, support chat, and server-cache synchronization, so changes appear everywhere without a refresh.
- Support-ticket intake rebuilt as a five-step wizard with timezone- and holiday-aware slot scheduling and embedded real-time chat.
Quality management & training LMS
- EU-MDR-oriented QMS: multi-stage document approval, version control, electronic signatures, and automated PDF generation for compliance documentation.
- In-house training LMS (Next.js 15, React 19): an AI quiz generator using structured-output GPT-4o-mini (multiple-choice and matching questions with explanations), plus enrollment and certificate flows with public certificate verification.
Decisions & trade-offs
Idempotency before speed on the Shopify broker
Payment webhooks arrive at-least-once. Every event is processed idempotently with automatic retries, so a replayed webhook can never double-issue a license or duplicate a customer.
A unique index as the dedup guard, not application logic
Cron restarts and overlapping schedules can re-fire reminders. A unique-indexed reminder log makes double-sends structurally impossible at the database layer instead of best-effort in code.
SSE over WebSockets for the chatbot
A one-directional token stream doesn't need a socket. Server-sent events ride plain HTTP, reconnect for free, and keep the streaming widget simple.
Outcome
- Spreadsheet- and email-based workflows replaced with one auditable system spanning three portals.
- 445 devices across 417 clinics tracked through registry, warranty, support, and quality management.
- Support intake triaged by AI before a human touches it; documentation answerable through a cited, streaming chatbot.