Work · Co-founded venture

Discoveria: a clinical-trials platform, upgraded 2 → 3 → 4 → 5 → 6

A pre-launch, patient-friendly clinical-trials platform. I took it from Grails 2.5.6 to 6.2.3 one major version at a time, and built an AI content pipeline behind a ~2M-page site built from 500K+ clinical trials.

  1. 2.5.6
  2. 3.3.18
  3. 4.1.4
  4. 5.3.6
  5. 6.2.3
Every major Grails version, one at a time, with Java 8 → 11 → 17 (Sep 2024 → Mar 2025)

Discoveria, Inc. is a patient-friendly clinical-trials discovery platform built on ClinicalTrials.gov’s AACT dataset: 500K+ studies. I co-founded it, and I lead all of its engineering.

The problem

ClinicalTrials.gov lists 500K+ studies, but the data is dense and technical, and it’s hard for patients and families to understand or search. Discoveria mirrors the full AACT research database and layers patient-friendly, AI-assisted content and search on top.

The original 2020 build ran on Grails 2.5.6 / Java 8. Before building any further, I brought the whole stack up to date.

What I built

  • A stepwise upgrade through every major Grails version: 2.5.6 → 3.3.18 → 4.1.4 → 5.3.6 → 6.2.3 (Java 8 → 11 → 17) in about six months, Sep 2024 → Mar 2025. Each step had its own theme:
    • 2 → 3: the big rewrite (Gradle, Spring Boot, YAML config, the new plugin system).
    • 3 → 4: Java 11 and GORM 7.
    • 4 → 5: Gradle 7, Groovy 3, Micronaut.
    • 5 → 6: Java 17 and Spring Security 6.
  • Multi-datasource GORM: the app database, a mirror of the 52-table AACT schema, and an upstream source read through raw SQL. Transactions are tied to a specific datasource, and lazy-loading traps are designed out.
  • An AI content pipeline: OpenAI with production rate limiting (3,500 RPM / 200K TPM), retries with backoff, and the Batch API. It rewrites dense trial data and generates patient-friendly content and SEO metadata (JSON-LD / Open Graph). It’s the AI content pipeline behind a ~2M-page site built from 500K+ clinical trials.
  • The data-sync pipeline: re-engineered with batched flushing, parallel chunked processing, explicit executors and JVM tuning. Benchmarked at up to 83× the original throughput.
  • Infrastructure as code: Terraform. Deploys go GitHub Actions → S3 → SSM with a health-checked rollback.

Results

  • Every major Grails version, one at a time, Java 8 → 17, in about six months.
  • Scale: about 175–180K lines of first-party Groovy/GSP, over a 500K+ study dataset.
  • AI at scale, done responsibly: rate limits, the Batch API and retries, not a toy chatbot wrapper.
  • Data sync benchmarked at up to 83× the original throughput.
  • Built for AI-assisted engineering: a CLAUDE.md with a ~2K-line reference library, multi-session playbooks, and a two-tier TODO / session-continuity workflow.

My role

Co-founder. I own the architecture, the framework upgrade, the data model and sync pipeline, the AI content system, and the infrastructure and deployment.

Tell me what version you're on and what's breaking.

I'll tell you what the path looks like.