Sebastian Cepeda
Case Study: Synthetic Clinical Data for a Biopharma Research Team

Case Study: Synthetic Clinical Data for a Biopharma Research Team

Role: Senior Machine Learning Engineer, healthcare/biopharma research engagement | ~18 months

A clinical research team I worked with needed tabular patient data to build and test models, but real records were slow to access, tightly regulated, and usually too thin to support real experimentation. Patient confidentiality drove most of that friction: every access request had to be justified, reviewed, and limited to the minimum necessary, so the team was constantly starved of the volume and variety of data real modeling work needs. Data access, not modeling, was the actual bottleneck, and any workable fix had to keep protected health information out of the pipeline entirely.

I built diffusion-based generative models to produce synthetic tabular data that preserved the statistical structure of the real clinical datasets without ever touching or exposing an actual patient record, tracking every model variant and hyperparameter change in MLflow so improvements were measurable instead of eyeballed. That let the team experiment freely on data that carried no re-identification risk, which was the whole point. It also raised the harder question: is this actually good enough to trust?

That trust question ended up being the real project. Generating plausible synthetic data isn't the hard part, getting clinical researchers, who are rightly skeptical of anything synthetic, to actually rely on it downstream is. I ran statistical comparisons between the synthetic and real distributions and walked non-technical stakeholders through the results directly, then folded their pushback back into the validation checks. The pipeline only became something people used once that feedback loop existed.

I also built a second pipeline alongside it: LLM embeddings over medical literature search results, clustered to surface findings the team could act on instead of reading through papers by hand, plus prompt-engineering workflows on Claude to draft clinical study documentation, which cut into time the research team had been spending on manual write-ups.

Stack: PyTorch, scikit-learn, pandas, MLflow, Docker, AWS.