Case study · 2024 — Present
Precision Health Platform
A clinical genomics platform built from an empty repository to production — a million classified variants, ACMG classification, polygenic risk scores, and a physician-configurable AI layer on top.
- Next.js
- FastAPI
- PostgreSQL
- Genomics
- ACMG
- PRS
- Pharmacogenomics
- Docker
- RBAC
- HIPAA
The problem
The largest system I have built end to end. A patient registers, completes intake, then uploads whatever they have — blood work, a microbiome panel, a raw 23andMe or AncestryDNA export — and the platform keeps analysing it rather than producing one report and stopping.
Underneath is a genomic analysis engine holding close to a million classified genetic variants, and above it a personalised assistant that a physician can configure for their own patients.
What it does
- Raw genotype files classified against ACMG guidelines, cross-referenced against ClinVar and GWAS Catalog.
- Polygenic risk scores across a few hundred conditions, alongside drug-gene interaction analysis for pharmacogenomics.
- Multi-omic integration: genetics, clinical chemistry, microbiome, mitochondrial function, epigenetic age and wearable data in one model of the patient.
- Parsers for dense lab formats including MITOswab and GI Effects, with output rendered in English or Persian.
- An ensemble AI layer — several models where that improved reliability, one model where it did not — plus a peptide and pathway analysis layer.
- Role-based access control and audit logging across admin, doctor, technician and patient roles.
- Interactive 2D and 3D visualisations mapping findings onto the body, and exportable patient-ready clinical reports.
- Containerised and cloud-deployed, designed against HIPAA and GDPR from the start.




What was hard
A million variants is a data problem before it is an ML problem
Classification is only as good as the reference set behind it. Most of the work was building and reconciling the variant database — ClinVar and GWAS Catalog disagree, evidence levels change, and a stale classification in a clinical context is worse than no classification.
Language models hallucinate confidently about genetics
The AI layer never invents a finding. It is constrained to interpret data the engine has already classified, which is why the ensemble exists — agreement between models is used as a reliability signal, not as a way to sound more certain.
Continuous analysis, not a one-time report
Every new upload has to re-open conclusions drawn from earlier ones. That reframes the whole system from a report generator into something closer to a longitudinal record with an opinion.
Other case studies
(2)Lumen
A lab report PDF becomes a dashboard you can read in ten seconds — parsed, scored, charted and interpreted, with a designed PDF back out.
GoldFeed
A Persian-language gold market terminal — live fund pricing, eleven technical indicators voting on one mechanical rating, news impact, and an analyst that draws on the chart.