Selected work
Projects I own end to end.
Each one starts with a real question and ends with something you can open: the problem, my role, what I did and the outcome, next to the artifact I built.
01 Relay · Payment operations
Explain every failed payment, and route around a failing processor.
- Problem
- When a payment fails, operations teams can't see why, and a failing processor keeps taking traffic until someone notices.
- My role
- Product owner and builder: scope, metrics, decision records, build and measurement.
- What I did
- Built a two-processor payment platform with one timeline per payment, plain-language failure explanations, automatic failover, incidents, dashboards, signed webhooks and a Python SDK.
- Outcome
- Complete on synthetic data: in a scripted processor outage, failover recovered most of the payments a static setup lost (simulated; figures on the project page).
Fig. 1 — Mock-up of the Relay console. All payments and processors are synthetic. 02 Regional Sales Data · Excel, SQL, Tableau
Which sales channels actually make money, region by region.
- Problem
- Revenue showed which channels sold the most, not which ones earned the most once costs were counted.
- My role
- Analyst, end to end: question, data, dashboard, recommendation.
- What I did
- Cleaned and joined the sales data in Excel and SQL, then built profitability views by channel and region in Tableau.
- Outcome
- [2–3 findings from the deck] — owner to confirm
Top channel[channel]Margin gap[n] ptsProfit margin by channel All regions
Highest marginAverageFig. 2 — Illustrative shape only. Channel names and values come from the Tableau workbook: owner to confirm. 03 Congress and Voter Behavior · R
Does social pressure get people to vote, and by how much?
- Problem
- Turnout campaigns use social pressure, but how much it changes behaviour is rarely measured against a control group.
- My role
- Analyst: research question, statistical analysis in R, presentation.
- What I did
- Compared turnout across treatment groups and a control, estimating each effect with a confidence interval.
- Outcome
- Largest effect: [group], +[n] pts turnout — owner to confirm
lm(turnout ~ treatment) # effect vs control
Group 1+[n]Group 2+[n]Group 3+[n]Group 4+[n]Fig. 3 — Illustrative shape only. Groups and estimates come from the analysis: owner to confirm.