Skip to content

Designing a research-platform suite for pharmaceutical R&D

TL;DR

Thesis

For years, the scientific knowledge here lived in documents — study plans in Word, data in Excel, charts pasted by hand into reports. You couldn’t search it, compare it across studies, or feed it forward into the next piece of work. Both platforms in this case study attack the same core problem: turning research knowledge from documents into structured data the organization can reuse.

flowchart LR
    A["Plan a study"] --> B["Auto-generated lab task list"]
    B --> C["Analyze results"]
    C --> D["Meta-analyze across studies"]

    classDef step fill:#87CEEB,stroke:#333,stroke-width:2px,color:darkblue
    class A,B,C,D step

What I did

Results

MetricBeforeAfter
Time to plan a study~2 weeksa few days (~70% faster)
Time to produce a report~3–5 daysa few hours (order of magnitude)
Finding a comparable studynear-impossibleinstant (structured search)
Adoption at launch~50 scientists, 2 research areas

The problem

What was planning a study actually like?

Study plans were written in documents, as unstructured text — not as structured data. That meant a plan couldn’t be queried, compared with past studies, or turned into anything actionable downstream. Planning was slow and lived in prose.

Planning also runs on two clocks at once, which is the real source of complexity:

And analyzing the results?

Reports were built manually in Word. Scientists collected data by hand into Excel, then used an online tool that worked like a calculator with no memory — analyzed data wasn’t stored, so charts and analyses had to be downloaded and pasted into documents by hand.

The biggest business pain was finding and comparing past studies: each study carried only limited metadata, so finding research with similar parameters was nearly impossible. The new system had to collect structured data and make it searchable.

My role / scope

Process

Key decisions & trade-offs

DrugLow doseMid doseHigh dose
Drug A100 mg200 mg400 mg
Drug B200 mg400 mg600 mg
flowchart LR
    A["Study 1<br/>group 2"] --> W["Comparison layer<br/>drug + dose"]
    B["Study 2<br/>group 6"] --> W
    C["Study 3<br/>group 3"] --> W

    classDef study fill:#87CEEB,stroke:#333,stroke-width:2px,color:darkblue
    classDef layer fill:#90EE90,stroke:#333,stroke-width:2px,color:darkgreen
    class A,B,C study
    class W layer
flowchart TD
    S1["Study time<br/>day 50: draw blood"] --> X{"Collision with lab calendar?"}
    C1["Calendar time<br/>real date is a holiday"] --> X
    X -->|"yes"| V["Calendar view for lab staff<br/>transparency, not auto-resolve"]
    X -->|"no"| Y["Event scheduled normally"]

    classDef time fill:#87CEEB,stroke:#333,stroke-width:2px,color:darkblue
    classDef decision fill:#FFD700,stroke:#333,stroke-width:2px,color:black
    classDef result fill:#90EE90,stroke:#333,stroke-width:2px,color:darkgreen
    class S1,C1 time
    class X decision
    class V,Y result

How it turned out

What I took away