c/o Vancouver, BC
49.28° N, 123.12° W
Site v1.0 | Oct 2026
Next: New York, NY
40.71° N, 74.01° W

"JOSHUA
MENDIS"

"DATA SCIENTIST" + PREDICTION, SIMULATION, EVALUATION

I model how people make decisions, simulate what happens when the conditions around them change, and then check whether the predictions held up. For the last two years my population has been the patients of a Canadian health system: when they show up, where they go when information changes, and what actually happens when you intervene.

Data scientist at Vancouver Coastal Health, one of Canada's largest health authorities. I ship forecasting models, causal evaluations and production data pipelines across 13 hospitals and 8 urgent and primary care centres, and I turn the results into decisions for physician leaders and the Ministry of Health. MPH in epidemiology and biostatistics from Lund University, with Distinction, where the job was separating real signal from noise in large populations. I work with AI tools every day and check every number they touch. Board director at Ribbon Community. Next stop is New York.

Fig. 1"MANHATTAN PLOT"

The chart geneticists use to find signals in a genome. Each peak above the line is a project. The bold dots just under it are smaller wins. Tap any of them.

"THE LINE" is genome wide significance, p < 5 × 10−8. The plot is for illustration purposes. The numbers in the captions are real.

"NOW"Fall 2026

"SELECTED WORK"6 items

Project No. 01Predictionc/o VCH

"Predicting ER surges four hours before they happen"

Gradient boosted and logistic models on 4.6 years of hourly data, predicting when emergency waiting rooms will tip into their highest surge tier, four hours ahead. Before trusting the numbers I ran a formal leakage audit, a negative control and calibration checks, then pitched physician leadership on a prospective pilot. A separate set of Random Forest models forecasts daily arrivals across 16 sites for staffing.

SPECS: 11,760 hours | AUC 0.82 to 0.87 vs published benchmark 0.76 to 0.77 | 16 site forecasts at R² 0.82 to 0.93 | sole author

Project No. 02Behaviorc/o VCH

"What do people do when the information disappears?"

A public website shows patients live ER wait times so they can choose where to go. When it went dark for 71 hours, it created a natural experiment in how a population responds to losing information. I led the analytics, testing whether patients redistributed across sites and whether waits, length of stay or leaving without being seen changed. Second author, manuscript in preparation for the Canadian Journal of Emergency Medicine.

SPECS: 71 h outage | 19 EDs | ~34,000 visits | 3 independent baselines

Project No. 03Evaluation + equityc/o VCH

"Meeting people where they are"

Many people who use drugs or are houseless avoid emergency departments altogether. Stigma, and the memory of being treated like they didn't belong, keeps them away until things are much worse. Our health authority piloted harm reduction nurse clinicians and peer support workers, in the ED and out in the community, to change that.

I ran the controlled evaluation of the pilot. Adding a proper control group changed the answer: it shifted a clinical steering committee's position and informed the decision to expand the roles.

The same question runs through my board work at Ribbon Community, Vancouver's oldest HIV organization, where peer navigation and a drop-in run with Vancouver Coastal Health reach people the system usually misses. The question is the same in both places: does the program actually reach the people it's meant for?

SPECS: controlled design | ED + community settings | decision changed | roles expanded

Project No. 04Ground truthc/o VCH

"Building ground truth from messy records"

A production pipeline that finds sepsis patients in the EHR, pulls antibiotics, fluids, lactate, cultures and vitals, and measures care against Surviving Sepsis Campaign bundles. I caught a defect that was quietly inflating the cohort and validated the labels against clinician chart review.

SPECS: 39 step pipeline | 6 data catalogs | ~2,800 mislabeled visits removed | sole analyst

Project No. 05Allocationc/o VCH

"Does the money follow need?"

Avoidable hospitalization rates and resource intensity by local health area, used to test whether provincial funding reaches the communities that need it. The recommendations shaped BC's regional health funding model.

SPECS: avoidable hospitalizations | resource intensity weights | by local health area

Project No. 06Signal vs noise2021 to 2023c/o Lund University

"Finding one real signal in 822"

Does the number of copies of the salivary amylase gene shape what's circulating in your blood? Elastic net models across the plasma metabolome of a Swedish population cohort narrowed 822 metabolites to 18 candidates, and only one, theophylline, survived correction for multiple testing. MPH thesis, awarded Distinction.

SPECS: 822 features | n = 826 | 18 selected | 1 significant after correction (p < 0.001)

"FIG. 2" THE OUTAGE GAMEAbout 5 min

A population simulation of a city drawn like a Vancouver transit map: five ERs, a children's and women's hospital, three clinics, six groups of people and a site that shows live wait times. Learn who lives where, predict what happens when the site goes down, then try to fix it.

"TOY MODEL" Fictional city, made up numbers. Not VCH data, not study results.

"HOW THIS WORKS" Every assumption, in plain language
  • About 1,500 people a day need urgent care, more in the afternoon and fewer overnight.
  • Six groups live in different mixes across North Shore, Downtown, East Van, West Side and Richmond: young adults, families, shift workers, older adults, newcomers and people who are houseless. Each group has its own site use, mix of serious and minor patients, way of getting around and patience for a long line.
  • About half of patients are minor, like a sprain or an ear infection, and could be seen at a clinic. The rest are serious, like appendicitis or a serious infection, and need an ER. Neighbourhoods with fewer family doctors send more minor patients.
  • Every ER already runs near 100% of capacity on a normal afternoon, partly because admitted patients wait in the ER for a bed. Above 115% counts as hallway care.
  • Pediatric patients and births go to Kids + Women whether or not the site is live.
  • 1 in 5 serious patients come by ambulance. Paramedics take them to Harbour General, the trauma centre, whatever the site says.
  • When the site is live, about 4 in 10 people check it (7 in 10 young adults, 1 in 10 people who are houseless) and go wherever travel time plus wait is shortest. Everyone else goes to the nearest place, to "the big one" (Harbour), or wherever they always go.
  • Clinics are open 8 am to 10 pm, hold about an eighth of Harbour's capacity and only see minor patients. Serious patients get sent on to an ER, and a full clinic turns people away.
  • Some people who are houseless never come to an ER at all, because of stigma and how they have been treated before. A few of them get sicker as a result.
  • Minor patients who see a long line may go home. A quarter of them come back a day or two later, sicker.
  • Serious patients are seen ahead of the line, but crowding still slows them down. Every hour past their safe window adds a small chance of harm, more in hallway care, and more for older adults and people who are houseless.
  • Even on a normal day a few patients are harmed. Crowding is what multiplies it. People who wait more than 3 hours start to leave without care.
  • Travel time comes from road distance on the map, so the bridges matter.
  • Every rate above is invented for the game. How people really behave when the information disappears is what the outage study tests.

"WRITING"1 essay

Essay No. 01 Oct 2026 | 4 min

"What happens when people lose the information they were using?"

Read

For 71 hours, a website went dark.

In BC, a public website shows live wait times for emergency departments. The idea is simple. If you can see that one ER has a four hour wait and another one fifteen minutes away has a one hour wait, some people will make the drive, and the system balances itself out a little.

That's the theory, anyway. It's actually really hard to test. You can't just switch off a public health website to see what happens. Then one day the site went down across 19 emergency departments, and nobody had to.

I think about this a lot because it's a clean version of a question I care about way beyond hospitals. When you give a population information, does it change what they do? And when you take that information away, how fast do they go back to habit?

Natural experiments are great because a broken server does the randomizing for you. They're also dangerous, because nothing about an outage is truly random. It happens on particular days, in a particular season, maybe in the middle of a bad flu week. If ER traffic looks different during those three days, that could be the outage, or it could just be the flu.

So most of the work isn't the comparison. It's building the baseline: what would those 71 hours have looked like if the site had stayed up? We built three independent baselines for that, each imperfect in a different way. An effect that only shows up against one of them is one I don't trust. An effect that holds up against all three is the start of an answer.

Then there's the question of what to measure. If the website matters, you'd expect to see it in where people go, how long they wait, how long they stay, and whether more of them give up and leave without being seen. Each one tells a slightly different story about who was actually using the site and who it was helping.

I'm not going to spoil the results, since the paper is still in progress. But the part that stuck with me most is how much of the job was deciding what would count as evidence before looking at the answer. It's the least glamorous part of any project and probably the most important.

It's also why I'm excited about where AI is going. Forecasting and simulating how people behave is getting cheaper and better fast. But a simulation is only as good as the evaluation behind it, and the world rarely hands you a clean test. When it does, like a website going dark for three days, you want to be ready to use it properly.

The public health version of that lesson is old. Be suspicious of your own results. Build your baseline before you fall in love with your effect. Let reality grade your predictions. I just think it matters more now than it ever has.

"HOW I WORK WITH AI"Daily

ToolsClaudeDatabricks GenieMCP

I set up a Jira MCP server inside Databricks Genie Code, so I can create, search and update tickets in plain language while I'm in the middle of an analysis. I turn stakeholder requests into Genie prompts that build first drafts of cohorts and queries, then check every number myself before anything leaves my hands.

I've reviewed the literature on LLMs in clinical settings and I'm exploring how language models and tree based models could work together to classify free text ER charting. This site, including the Manhattan plot and the outage game's population simulation, was designed and built in conversation with Claude.

SPECS: AI drafts | human checks | every number verified

"NULL RESULTS"And bugs

"RIBBON COMMUNITY"Since 1983

Board DirectorFeb 2026 to nowVancouver, BC

Ribbon Community was founded as AIDS Vancouver in 1983, one of Canada's first community AIDS organizations, started by gay men in Vancouver who drew on what activists were doing in New York City. Today it runs peer navigation, case management, a grocery program for people living with HIV, Indigenous programming, and a drop-in run in partnership with Vancouver Coastal Health.

I volunteered with Ribbon starting in 2024 and joined the board of directors in February 2026. I review budgets, financial statements and funding sustainability, and work on program oversight and strategy, including how a legacy HIV organization changes its care as the people it serves get older.

"PAPERS AND TALKS"

"PATH"