back
work · 2025 HIV portfolio case study

a windows-only modeling pipeline the portfolio owner could run from their mac

The portfolio owner worked on a Mac; Spectrum runs only on Windows. So the inputs and launch layer live on their machine, the compute lives on mine, and SSH plus Dropbox close the gap.

The HIV portfolio’s modeling ran Spectrum GOALS across 55 countries and 500+ product-combination branches — a 24-to-48 hour job that only runs on Windows. The portfolio owner worked on a Mac. So I built the analysis and inputs layer and the launch orchestration to run from their machine, while the heavy compute ran on a Windows box I built and tuned — reachable over SSH, with Dropbox as a shared filesystem. They launched runs from their laptop; my machine did the work; results came back to them automatically.

55
countries
500+
market branches
~13m
per extraction run
4
pipeline stages

Context

The engagement modeled the impact of combining next-generation HIV prevention and treatment products — oral and injectable PrEP, rings, implants, bNAbs, a future vaccine and cure, VMMC, ART variants — across 55 countries and hundreds of rollout scenarios. The engine is Avenir Health’s Spectrum GOALS model, driven in batch. The modeling was sound; the bottleneck was operational: Spectrum is Windows-only and slow, and the person who owned the portfolio and its assumptions worked on a Mac.

What this is

A fully automated R pipeline in four stages:

The architecture

The pipeline detects who is running it and on what OS, and picks a matching config. On Windows it runs Spectrum locally. On macOS it opens an SSH connection to the Windows box and dispatches the batch there — connection-multiplexed to stay fast, with results pulled back over SSH and, later, Dropbox acting as a shared filesystem so files propagate on their own. The portfolio owner set up their side with a short OpenSSH and key walkthrough I wrote into the docs. From their seat it was one command; the Windows box did the 24-to-48 hour job and the outputs appeared on their Mac.

What I owned

What it changes

Modeling teams routinely hit this wall: the tool is platform-locked and slow, and the person who should be driving it can’t run it. The usual answers are a cloud VM or "email me the inputs and I’ll run it." This was neither — the owner kept hands on their own assumptions and launched real runs themselves, while the compute lived somewhere it could actually be fast. The owner ran the portfolio from a Mac, with no Windows workstation and no one between them and the model.

Note. Machine names are the author’s own; no client identities, addresses, or credentials are exposed.
all work