# Mohamed Rodani — portfolio summary

Physics undergraduate at Queen Mary University of London (BSc Physics, 2025–2029 expected) with a particular interest in machine learning research, quantitative systems and scientific computing. Open to 2026–27 internships and spring weeks in ML engineering or quantitative research, in London.

This is a plain-text summary of https://mohamedrodani.dev/. Every figure below comes from the linked case study, which states how it was measured and its limitations.

- Email: rodani484@gmail.com
- GitHub: https://github.com/M-Rodani1
- LinkedIn: https://www.linkedin.com/in/mohamed-rodani

## Selected work

### QMML Market Making Hackathon (March–April 2026, team of two)

Nine live rounds of fair-value prediction, quoting and post-quote trading, with elimination on negative cash.

- Result: 2nd of 93 teams, 1st on Sortino ratio; simulated competition bankroll £100,000 → £305,727, £1,153 behind 1st. Not real capital.
- Approach: per-stock model selection under cross-validation; quoted wide to avoid the market-maker role; sized big only where a strong linear fit had enough data, and traded the minimum in six of nine rounds.
- My part: prediction models and model selection, strategy design and the tiered sizing logic (`strategy.py`). Teammate Kieran Cooke: EDA, feature engineering, Kelly-criterion implementation.
- Case study: https://mohamedrodani.dev/projects/qmml-market-making-hackathon.html
- Code: https://github.com/M-Rodani1/qmml-market-making-hackathon

### Gweizy — gas-price forecasting for the Base network (December 2025 onward, team of two)

A live pipeline that samples Base gas prices every five minutes and serves 1 h / 4 h / 24 h forecasts from a Flask API with Socket.IO push to a React front end.

- Result: winner, QMUL AI Society × Coinbase hackathon (December 2025).
- Measured: 59.8% one-hour directional accuracy against a 50% baseline (R² 0.071); 4 h and 24 h forecasts no better than chance; a later retraining run failed the pipeline's own baseline check, and the case study reports it.
- My part: backend, data collection, features, model training and validation, API and deployment. Teammate Senan: React / TypeScript front end.
- Case study: https://mohamedrodani.dev/projects/base-gas-optimiser.html
- Code: https://github.com/M-Rodani1/Gweizy

### BERT financial sentiment (2025, solo)

Fine-tuned `bert-base-uncased` on 5,842 labelled financial sentences (14.7% negative) for three-class sentiment.

- Result: negative-class recall 28.6% → 87.4% on a 1,169-sentence validation split, for overall accuracy 81.5% → 79.4%; negative precision 52.8%. One 80/20 split.
- Method: class-weighted loss, early stopping, per-class metrics.
- Case study: https://mohamedrodani.dev/projects/bert-financial-sentiment.html
- Code: https://github.com/M-Rodani1/bert-financial-sentiment

### Kaggle Playground S5E11 — loan-default prediction (November 2025, solo)

- Result: rank 950 of 3,850 (top 25%), private leaderboard 0.92450 AUC.
- Method: LightGBM tuned with Optuna, 5-fold stratified CV with the same folds for every experiment. Baseline 0.923351 ± 0.000664 CV; engineered ratio features and a three-library blend both made CV worse; five-seed averaging plus external target statistics improved it by 0.00033.
- Case study: https://mohamedrodani.dev/projects/kaggle-playground-series.html
- Code: https://github.com/M-Rodani1/kaggle

## Other case studies

- QMML Valentine's Hackathon (February 2026, solo): 2nd place, 0.59235 AUC against a winning 0.59275, on ~700k rows; out-of-fold target encoding and a rank-averaged LightGBM / XGBoost / CatBoost ensemble. https://mohamedrodani.dev/projects/qmml-valentines-hackathon.html
- QMML Christmas Hackathon (December 2025, solo): 2nd place with 17 features and logistic regression; the case study documents a target-leakage flaw in how the training features were built, and the fix. https://mohamedrodani.dev/projects/qmml-christmas-hackathon.html
