Master's student in AI and Data Science at Université Mohammed V, Rabat, with a Licence in Data Analytics. I like probability, statistics and football, so I spend most of my time using the first two to ask uncomfortable questions about the third.
The question I keep asking: where does skill end and luck begin?
| Project | The question | The answer |
|---|---|---|
| ⚽ football-prediction-ml | Can ML out-predict the betting market? | No. 54% accuracy is the bookmaker's ceiling, ROI negative. Markets are efficient |
| 💰 value-betting-scanner | Then where is the edge? | In prices, not predictions: +4% CLV over 224 paper bets against Pinnacle |
| 🎮 fpl-luck-or-skill | Is Fantasy Premier League luck? | 85% skill, measured on 24,041 managers. But the title itself is luck: the champion wins the replay 3.6% of the time |
| 🏟️ wc2030-morocco-impact | What will hosting WC 2030 do for Morocco? | No measurable GDP boost (panel econometrics), and Casablanca is the congestion risk |
| 🤖 atlas-hcp-assistant | Can a non-expert query national statistics in Darija? | Yes: NL-to-SQL with a RAG fallback, built at the HCP (architecture case study) |
A pattern you will notice: half my results are negative, and I publish them anyway. A model that fails honestly teaches more than one that succeeds on a leaky backtest.
Data Scientist, intern · Haut-Commissariat au Plan, Morocco's national statistics institution · Tanger, 2025. I built ATLAS, a multilingual assistant (Arabic, French, English, Darija) that turns a plain question into SQL over the national statistics database, with a RAG fallback so that "I do not have this" replaces an invented number. Flask, React, PostgreSQL, ChromaDB, Google Gemini.
| Machine learning | Random Forest · XGBoost · LightGBM · SVM · calibration · walk-forward validation · leakage hunting |
| Statistics | panel econometrics (fixed effects, HC3) · PCA and MCA · Monte Carlo · variance decomposition · hypothesis testing |
| GenAI and LLM | RAG (ChromaDB) · NL to SQL · Google Gemini · retrieval fallbacks and grounding |
| Optimisation | MILP (PuLP) · Kelly criterion · expected value under uncertainty |
| Data engineering | PostgreSQL · Kafka · Flink · ClickHouse · Apache NiFi · Docker |
| Visualisation | Plotly · Power BI · Grafana · Matplotlib · Seaborn · FactoMineR |
The versions that actually run stay private: the live fork of the betting scanner, the FPL decision engine I run for the 2026/27 season and the product I am building on top of it, plus internship work that is not mine to publish. That is where most of my commits land. Happy to walk through any of it on request.
Master, Sciences du Numérique et Intelligence Artificielle · Faculté des Sciences, Université Mohammed V, Rabat · in progress
Licence, Analytique des Données · FST Tanger, Université Abdelmalek Essaâdi · 2025
Currently running my FPL decision engine live for the 2026/27 season, and looking for opportunities in data science and quantitative analysis.





