Research Data
Automation
Tool
UX researchers at Labcorp were spending hours manually merging Excel exports from multiple study waves. I saw the problem, designed the solution from scratch, and built UnifyUXR — a full-stack Angular app that handles the whole process. Researchers upload their files and get the combined results in seconds.
A multi-hour manual process for a solvable problem
Labcorp's UX research team runs studies in multiple waves. Each wave produces an Excel export. Combining those exports into a single set of results required manually copying data across spreadsheets, applying weighted average calculations by hand, and then formatting everything for presentation. It took hours and was prone to error.
This is exactly the kind of task that software should handle. The logic is well-defined, the inputs are consistent, and the output format is always the same. I asked if anyone had tried to automate it. Nobody had.
I volunteered to build it.
Designed and built by one person
I sat with UX researchers and watched them do the manual process. I asked questions about edge cases, which study configurations they used most, and what the output needed to look like. The goal was to understand the real problem before writing a single line of code.
I designed the interface in Figma before building anything. The main question was how to make file upload and configuration feel simple for researchers who do not have a technical background. The answer was a three-step flow: upload files, configure wave weights, get results.
I built the Angular frontend following the Figma designs. The app uses reactive forms for the configuration step and Chart.js to render the combined results as interactive visualizations that researchers can explore.
I used ExcelJS to parse the uploaded files, extract the response data, and apply weighted average calculations across waves. The logic handles variable question sets between waves and multiple response scale formats.
I containerized the app with Docker and deployed it to Labcorp's Kubernetes infrastructure using Helm charts and a Jenkins CI/CD pipeline. The same pipeline handles updates — I push a change and it deploys automatically.
Full-stack from design to deployment
Try the wave merger
A working recreation of UnifyUXR's core interaction, using fictional study data. Drag the wave weights and watch the weighted means recompute in real time — the same mergeWaves logic shown above.
Fictional data — the production app parses real Excel exports with ExcelJS and supports variable question sets between waves.
Hours to seconds
Researchers upload their files and the app returns combined results in seconds. The whole manual process — copying, calculating, formatting — is gone.
The results don't just appear as a table. Chart.js renders interactive bar charts that researchers can explore before exporting, which makes the analysis step faster too.
The app runs on Labcorp's Kubernetes cluster with a full Jenkins CI/CD pipeline. It gets updates like any other production service.
From the first conversation with researchers through to the deployed app, this was a solo project. Design, frontend, processing logic, containerization, deployment — all of it.