About
I'm an Australian student at Duke University studying Mathematics and Computer Science, with a certificate in Decision Science (GPA 3.8). I'm interested in quantitative trading, quant research, data science, machine learning and AI.
I like problems where a number can be checked against reality. Sports and prediction markets have been fun to explore for that reason: every forecast resolves, and the market gives you a strong benchmark to try to beat.
Away from the desk I compete for Duke and for Australia in foil fencing. In 2025 I won Australia's first ever U20 World Cup. In college, I'm also an NCAA qualifier, ACC Team Champion, and was named Duke's MVP and Sportsman of the Year.
Work authorization
Australian citizen. No sponsorship needed for internships, or for about three years after I graduate. After that I'm eligible for the E-3, an Australia-only visa with no lottery.
Skills
Languages
Tools
Data and ML
Statistical methods
Coursework
Projects
Probabilistic AFL Forecasting with Ridge Regression and Elo (Prooty)
Automated AFL forecasting pipeline, live at prooty.site. Matches bookmaker closing lines out of sample, with no exploitable edge.
- Brier
- 0.194
- Bookmaker
- 0.189
- OOS accuracy
- 69.4%
Show detailsHide details
Probabilistic AFL Forecasting with Ridge Regression and Elo (Prooty)
- Ridge regression on Elo ratings, opponent-adjusted scoring and home advantage, predicting margins and win probabilities. An automated pipeline syncs Squiggle API data on a schedule.
- Walk-forward, out-of-sample backtest with no lookahead: Brier 0.194 against 0.244 for always picking the home team, with ECE of 3.3% across deciles.
- Benchmarked against bookmaker closing lines over 566 matches, reconciled from a second data source, and came within 0.005 Brier of the market.
- Kelly-staking backtests found no exploitable edge: the largest model and market disagreements adversely selected for model error.
Brier score, out of sample
Lower is better. 566 matches with closing odds.
- Accuracy
- 69.4%
- Market accuracy
- 69.8%
- Calibration error
- 3.3%
- Log loss
- 0.565
Pre-registered Calibration Analysis of Polymarket Prices
Pre-registered study of whether Polymarket prices are calibrated. They are, and there's no favourite-longshot profit after costs.
- Markets
- 181,214
- Brier
- ≈0.15
- Edge after costs
- None
Show detailsHide details
Pre-registered Calibration Analysis of Polymarket Prices
- Built a Polymarket API pipeline to collect and filter 181,214 eligible resolved markets, then drew a random sample of 3,000 politics and sports markets and downloaded their price histories.
- Prices were well calibrated across 5,231 snapshots, with no consistent favourite-longshot bias and no significant profit after assumed trading costs.
- Authored a research paper reporting the findings, with the pre-registered design and code published on GitHub.
Brier score of market prices
Lower is better. 0.25 is a coin flip.
- Eligible markets
- 181,214
- Random sample
- 3,000
- Price snapshots
- 5,231
- Profit after costs
- None
Latent Class Segmentation of Language Learners
Latent class segmentation of a Duolingo survey into 6 learner personas, tied to paying behaviour.
- Respondents
- 5,955
- Personas
- 6
- Odds of paying
- 2.3x
Show detailsHide details
Latent Class Segmentation of Language Learners
- Segmented 5,955 survey respondents into 6 learner personas with latent class analysis, validated by bootstrap stability testing (ARI 0.54).
- Confounder-adjusted logistic regression showed the top persona had 2.3x the odds of paying after controlling for country, platform and tenure. Delivered a 2-page report with product recommendations.
Linear Regression of ACC Basketball Point Spreads
Team project predicting ACC basketball point spreads from opponent-adjusted efficiency metrics, built for a prediction competition.
- Games
- ~85
- Test MAE
- ≈8 pts
Show detailsHide details
Linear Regression of ACC Basketball Point Spreads
- Predicted home-minus-away point spreads for upcoming ACC games from opponent-adjusted team efficiency metrics (Barttorvik).
- Linear regression on home–away differences in adjusted offensive efficiency, defensive efficiency and tempo. Dropped BARTHAG when it added little, given only about 85 games.
- Test MAE of about 8 points on an 80/20 split. Checked for home bias and avoided tuning to the small test set.
Monte Carlo Simulation of 2024 Olympic Men's Singles Badminton
Leakage-free match model plus a 10,000-run Monte Carlo of the Paris 2024 bracket. The simulation's favourite for gold, Viktor Axelsen, won.
- Matches
- 213
- Test AUC
- 0.60
- Simulations
- 10,000
Show detailsHide details
Monte Carlo Simulation of 2024 Olympic Men's Singles Badminton
- Hand-built a dataset of 213 pre-Olympic elimination matches and joined each one to the BWF ranking snapshot from before its tournament, so the model never sees future information.
- Logistic regression on log ranking-point difference and round, with a temporal split (train Jan to Apr, test May to Jun 2024): 0.66 accuracy and 0.60 AUC on about 50 held-out matches.
- Monte Carlo simulation of the full Olympic format (13 groups, byes, knockout) run 10,000 times. Its favourite for gold, Viktor Axelsen at 21.1%, won.
LLM-Powered Fencing Training Tracker
Voice notes after fencing training, transcribed and turned into structured takeaways with Claude. Built with AI coding tools.
Show detailsHide details
LLM-Powered Fencing Training Tracker
- Records a voice note after each session, transcribes it with OpenAI Whisper, and uses Claude to extract categorized takeaways, action items and injury flags.
- Stores sessions in Supabase, with a history view and an insights page showing open action items and recurring themes.
- Built with substantial help from AI coding tools.
Statistical Modelling of Audio Features, Billboard Hot 100
Team project (STA 221, with Daniel Murong and Chelsea Nguyen): multiple linear regression in R on 1,177 songs, with AIC selection and full diagnostics.
- Songs
- 1,177
- Features
- 105
Show detailsHide details
Statistical Modelling of Audio Features, Billboard Hot 100
- EDA on a 1,177-song dataset with 105 features, then multiple linear regression to identify which acoustic traits drive a song's measured happiness.
- Model selection by AIC and p-value screening, with full residual, VIF and Cook's distance diagnostics.
Fake News Classification with Word2Vec Embeddings
Team NLP project at Duke Applied ML. I built the preprocessing and Word2Vec embedding pipeline.
Show detailsHide details
Fake News Classification with Word2Vec Embeddings
- Contributed data preprocessing and the Word2Vec embedding pipeline to a team NLP classification project comparing logistic regression, random forest, XGBoost and BERT.
GitHub activity
Experience
ML Research Assistant
Duke University · Prof. Scott de Marchi
- Compared linear, polynomial and Lasso regression with 5-fold cross-validation (code), cutting test RMSE by 40% while reducing model complexity.
- Built a logistic regression pipeline on clinical hepatitis data (84% test accuracy), ranked predictors by standardized coefficients, and applied PCA to examine feature structure.
- Self-directed AI safety study: built a scalar autograd engine (micrograd) from scratch, verified against PyTorch; working through the ARENA curriculum toward transformers and mechanistic interpretability.
AI Project Engineer / Product Manager Intern
Quantworks
- Built an AI career-platform prototype for an education platform serving 7,000+ users, with LLM pipelines for personalized evaluations and recommendations.
- Analyzed competitor and user data to inform product decisions, and worked with the founder and partners on the roadmap.
Founder and Manager
Creator's Lounge
- Built and scaled an online content-creation community to 30,000+ users.
- Generated up to $5,000 a month through data-driven pricing, and automated workflows and campaign reporting with Python.
Other experience and leadership
Show allHide
Other experience and leadership
- Legal InternMay – Jul 2025Chen Shan Lawyers and Jack Shand Chambers, SydneyLegal research and case-summary review on civil and commercial matters; shadowed a barrister and a solicitor in court and client conferences.
- Digital Marketing InternMay – Sep 2025Uncommon Impact MarketingMarket and competitor research, B2B outreach to firms including PwC and AGL, and Python automation of content workflows.
- Campus Tour GuideOct 2024 – PresentDuke AdmissionsSelected and trained to represent Duke; presentations to 100+ attendees and 90-minute tours for prospective students.
- English and Math TutorNov 2023 – Aug 2024Ninety Plus Education Centre, SydneyTutored students aged 8 to 18 one-on-one and in small groups, adapting lesson plans to each student.
- Community Manager and Beta TesterJan 2021 – Dec 2022MosaeekManaged a 2,000+ user community and gave UX and feature feedback as a core beta tester.
- Volunteer RefereeJan 2020 – Jul 2024NSW Fencing AssociationOfficiated state and national competitions, up to 30 bouts a day.
High school leadership
- School CaptainOct 2022 – Oct 2023Reddam HouseCo-led a school of 1,000+ students, oversaw 10+ student councils, and started bi-weekly interschool leadership forums.
- Founder and Co-leader, World's Greatest ShaveJan – Apr 2023Reddam HouseFounded the school's largest fundraiser to date, raising $12,000+ for leukaemia research with a team of 20+ students.
Fencing
Foil, for Duke Division I and the Australian national team, since 2022.
- Represented Australia at the 2024 Paris Olympic Qualifiers
- ACC Champion and NCAA Qualifier
- Sport Australia Hall of Fame Scholarship (2023)
- Duke Fencing Sportsman of the Year (2025, 2026)
- Selected for Duke's Athlete Leadership Program
- Duke Fencing MVP 2025
- All-ACC Academic Team and ACC Honour Roll