Available for full-time roles and select freelance engagements. Learn more

I build AI systems finance teams actually use.

I design and ship AI systems that finance teams actually use — agents, RAG, and evals on top of solid ML and risk modeling. Currently building agent tooling for equity-derivatives index operations at Société Générale.

Currently

EQD Trading Analyst

Société Générale ATS

Based in
Morocco
Relocation
Open to Canada · Europe
Focus
LLM systems · Quant risk
Status
Open to opportunities

Experience across

0

Skills across 5 AI agents used in daily index operations

0%

Precision of my EVT risk model at a 1.3% false-positive rate

0M+

Trades analysed to calibrate pre-trade limits

0%

Dev time saved by the agents toolkit (internal estimate)

01 — Selected work

AI and ML systems — shipped, in production, and in the works.

Each case study covers the problem, my role, the approach, and the measured outcome.

agents → skillsin production
TASK5 AGENTS46 SKILLSrebalancereviewdatareportingdesign

46

reusable skills across 5 agents, in daily use

AI Engineering · Agents

AI Agents Toolkit for Index Operations

Five specialised GitHub Copilot agents (rebalancing, code review, data, reporting, design) that orchestrate 46 small skills — each skill encodes one workflow with a structured output an analyst can check.

  • Methodology PDF → structured rule spec in ~6 min (was ~40)
  • Reconciliation reports with automatic root-cause analysis
  • Adopted by 8 analysts across 2 trading teams
LLM agentsTool usePrompt designPythonBloomberg API
answer → figure checkbuilding now
ANSWERFIGURESTOOL RESULT…the 10Y-2Y spreadwas +47 bp (10Y5.22% vs 2Y 4.75%),up from +41 bp amonth earlier…4.75%5.22%1Y4.442Y4.75✓ found5Y4.9910Y5.22✓ found20Y5.6430Y5.60a figure with no source is flagged, never passed on quietly

27/28

eval questions passed with no figure missing from the fetched data (one run)

AI Engineering · Agents

Aloi, a Market Research Agent that Checks its Figures

A terminal agent with a hand-written tool loop. The model only chooses and explains: fetching, arithmetic and charts are plain Python, and every amount and percentage in an answer is looked up in what the tools returned. Models and data sources are swappable.

  • Amounts and percentages traced to tool results, or flagged
  • 48 tools and 17 playbooks, with charts drawn in the terminal
  • Compiled builds for Windows, macOS and Linux from one CI workflow
PythonAnthropic APIOllamaBloomberg Desktop APIpydantic
ask → island → answershipped
AGENTSISLAND · ON THE PCPHONEclaude codeneeds a yescodexediting 3 files…allow1 needs youwebshop wants to runnpm testmedium risk · 12sdenyallowsealedAgentDeckneeds younot running? the agent asks in its own terminal, as before

1 place

to answer Claude Code and Codex, on the PC or from a phone

AI Engineering · Developer Tools

AgentDeck, One Place to Answer Your Coding Agents

A small Windows app that brings every agent's permission requests, questions and finished turns to one island at the top of the screen. It rates each request's risk before you see it, and you answer there or from an Android app, over Wi-Fi or an encrypted relay.

  • Claude Code and Codex answered from one island, or from a phone
  • Risky requests need a hold; a built-in rule stops force-pushes
  • Notifications reach phones without Google services too
RustTauri 2React + TypeScriptSQLiteCloudflare Workers
retrieve → answer → citeshipped
QUERYHYBRID RETRIEVALANSWERMax weight perstock in theindex at rebal?p.14 §3.20.91p.15 §3.30.87p.41 §7.10.82p.9 §2.40.58p.63 §9.00.37Capped at 10%per constituentat each rebal.[p.14] [p.15]no evidence → “not found”

81.9%

accuracy on 94 held-out questions (95% CI 73–88%)

AI Engineering · RAG

Index Methodology RAG Assistant

Page-level PDF parsing with OCR, hybrid retrieval (BM25 + bge-m3 embeddings) with LLM query rewriting, and a local model that answers only from the retrieved pages, citing the exact page or replying NOT_FOUND.

  • 81.9% accuracy on 94 held-out questions
  • 14/14 unanswerable questions refused instead of guessed
  • Every answer cites a PDF page
PythonBM25 + bge-m3 hybrid retrievalqwen3-4B via OllamaPyMuPDF + OCREvaluation harness
pre-trade limits enginein production
STATIC LIMIT · noisyEVT LIMITu — tail fitted with GPD →trade size

94%

precision at a 1.3% false-positive rate

Quant Risk · MLOps

EVT Pre-Trade Limits Recalibration

Peaks-over-Threshold model (Generalized Pareto on the tail) fitted on 12M+ trades to set dynamic size/price limits per instrument, backtested against the static rules and shipped with tests, monitoring, and CI/CD.

  • 94% precision @ 1.3% FPR
  • False alerts down 87% vs static limits
  • EUR 1.8M RWA released
PythonEVT/POTGPDSQLStreamlit
which changes were real?shipped
CHANGEΔ POINTSPanswer model+11.90.003bge reranker+6.80.13MiniLM reranker+5.10.21bge-m3 embeddings+3.40.45query rewrite-0.81.0prompt v2-7.90.053prompt v3-8.70.061only p < 0.05 counts as a real gain

1 of 9

design changes in a real RAG project proven significant

AI Engineering · Evals

LLM Evaluation Toolkit

Deterministic fact-based scoring (accepted wordings, forbidden facts, refusals, page-level citations), Wilson confidence intervals, exact McNemar tests for A/B comparisons, label checks against the source pages, and a held-out ledger that flags a test set once it has been reused.

  • Re-analysed every design decision behind methodology-rag
  • Only the model swap was a significant gain (p = 0.003)
  • Reproduces the RAG held-out result exactly: 81.9% (73–88%)
Python (standard library)Wilson intervalsExact McNemar testpytestGitHub Actions
paper portfolio vs benchmarkshipped
+11.4%+7.2%— strategy— benchmark6 months · paper trading

+11.4%

6-month paper return vs +7.2% benchmark

AI Engineering · Quant Finance

Investment Copilot

Bloomberg/FactSet ingestion, a LangChain agent on local LLMs that drafts research memos, multi-factor scoring over a 500-stock universe, and IBKR paper trading — all behind one Streamlit UI.

  • +11.4% paper return vs +7.2% benchmark (6 months)
  • Research memo per ticker in ~45 s
  • Signal → paper trade in one loop
PythonLangChainLocal LLMsBloombergFactSet
training runbuilding now
1.52.53.54.5VAL LOSS 1.47— train— valsteps → 5,00010.8M params

10.8M

parameter decoder-only transformer, built from zero

AI Engineering · Deep Learning

GPT from Scratch

A GPT-style model built step by step in PyTorch — bigram baseline, self-attention, multi-head attention, full transformer blocks — trained on a French text corpus, with attention maps visualised.

  • Bigram → full transformer, step by step
  • Val loss 1.47 on a French corpus
  • Attention-head visualisations
PyTorchTransformersCUDAWeights & Biases
rebalancing runsin production
JFMAMJJASONDIDX-01IDX-02IDX-03IDX-04IDX-05IDX-06IDX-07okwarningexception caughtrunning ▸

7

Streamlit views replacing Excel tracking

Data Platforms · Operations

Index Rebalancing Monitoring Platform

Centralized Inputs → Run → Outputs platform: input validation, run logging, standardized dumps, mismatch detection against the calculation agent, and KPI monitoring across 7 Streamlit views.

  • Excel tracking → one platform for 40 indices
  • 23 data issues caught before production in Q1
  • Run preparation 3 h → 45 min
PythonSQLStreamlitExcel/VBAKPI design
promo action rankingshipped
PROMO ACTIONEXPECTED MARGIN UPLIFT (k€)margin floor−10% · coffee+18.4bundle · snacks+14.9−15% · dairy+12.22-for-1 · juice+9.8−20% · bakery+4.1−25% · frozen-1.4

+6.8%

simulated margin vs a rule-based promo calendar

ML & Forecasting · Retail

AI Pricing & Promotion Decision Engine

Synthetic retail environment, time-aware model benchmarking, demand-response prediction, counterfactual simulation, and constraint-aware ranking of promo actions under a margin floor.

  • +6.8% simulated margin vs rule-based calendar
  • Demand forecast MAPE 11.2%
  • Ranked promo actions under a margin floor
Pythonpandasscikit-learnLightGBMStreamlit
emission driversshipped
DRIVERSHARE OF VARIANCE EXPLAINEDLivestock41%Fertilizer27%Energy use14%Land use11%Other7%68%

68%

of emissions variance explained by two drivers

ML & Forecasting · Sustainability

Agricultural CO₂ Emissions Modeling

Predictive models combining agricultural, demographic, and climate features, benchmarked against econometric baselines for robustness and interpretability.

  • Livestock + fertilizer = 68% of variance
  • MAPE 7.9% vs 12.4% econometric baseline
  • Scenario API for NGO policy work
PythonXGBoostLSTMEconometricsscikit-learn

More work

62%

Tick Movement Prediction

XGBoost time-series workflow with walk-forward validation and leakage-safe splits.

ML

Prompt → ETL

Prompt-to-Pipeline ETL Generator

Prompt-driven utility generating standardized ETL skeletons with validation checkpoints.

Automation

92%

SkyFarms / FarmVision

Decision-support MVP: capture-to-feature-store pipeline, crop-stress inference, operator-facing Streamlit front-end.

Startup Build

02 — Experience

Three years turning market, risk, and survey data into tools teams rely on.

  1. Aug 2025 – Present

    EQD Trading Analyst

    Société Générale ATS

    • Designed a toolkit of custom GitHub Copilot agents and skills (5 agents, 46 skills) that automate index-rule extraction from PDFs, Bloomberg data pulls, and reconciliation reports with root-cause analysis.
    • Built a 7-view Streamlit monitoring platform that replaced Excel-based tracking of index rebalancing — KPI-driven exception handling and full run traceability.
    • Own monthly and quarterly rebalancing of equity/derivatives indices with Structuring and external calculation agents (S&P, Solactive), on production deadlines.
    • Run daily pricing and parameter validation (option prices, Greeks) and investigate mismatches to protect pricing integrity.
    PythonLLM agentsStreamlitSQLBloombergVBA
  2. Feb 2025 – Aug 2025

    Data Engineer Intern – Market Access

    Société Générale ATS

    • Designed a Peaks-over-Threshold EVT engine to calibrate dynamic pre-trade limits (size/price) on equity markets — 94% precision at 1.3% FPR on 12M+ trades, enabling a EUR 1.8M RWA release.
    • Built Python + SQL pipelines turning trading-access logs and bypass events into clean, analytics-ready tables.
    • Shipped Streamlit dashboards for limit monitoring, fat-tail backtests, and Kupiec-style exception diagnostics.
    • Industrialized the stack with Docker and GitHub Actions CI/CD so risk tools stay reproducible.
    PythonEVTSQLStreamlitDockerGitHub Actions
  3. Jun 2024 – Sep 2024

    Data Scientist Intern

    gaea21 (Geneva, NGO)

    • Modeled CO₂ emissions of Swiss agriculture from multi-source time series and panel data (XGBoost, LSTM) — livestock and fertilizer explained 68% of variance.
    • Packaged the models into a lightweight Python API for scenario exploration by the NGO's policy team.
    • Built an LSTM-based French text generator drafting sustainability briefs for the website.
    Time SeriesXGBoostLSTMPythonTensorFlow
  4. Jul 2023 – Aug 2023

    Data Analyst Intern

    Haut-Commissariat au Plan

    • Cleaned and migrated household-survey microdata into PostgreSQL for poverty and welfare analysis.
    • Produced ARIMA/ARDL-based indicators and dashboards on poverty and labour-market dynamics.
    RPostgreSQLEconometrics

03 — Capabilities

What I work with.

AI Engineering

  • LLM agents & tool use
  • RAG — hybrid retrieval, reranking
  • LLM evaluation & CI release gates
  • Transformers in PyTorch (from scratch)
  • Local / open-weight LLMs

ML & Quant

  • Extreme Value Theory (POT/GPD)
  • Time series — ARIMA, GARCH, LSTM
  • Gradient boosting (XGBoost, LightGBM)
  • Backtesting & model validation
  • Imbalanced learning

Engineering

  • Python
  • SQL / PostgreSQL / pgvector
  • FastAPI · Streamlit
  • Docker · GitHub Actions CI/CD
  • ETL & data pipelines

Finance Domain

  • Index methodology & rebalancing
  • Pre-trade risk limits
  • Option pricing checks & Greeks
  • Bloomberg · FactSet
  • Excel / VBA

Education

State Engineer — Applied Economics, Statistics & Big Data

INSEA — National Institute of Statistics & Applied Economics, Rabat

2022 – 2025

Morocco's national grande école for statistics — econometrics, machine learning, and statistical systems.

04 — Freelance

Engagements I take on.

Scoped up front, delivered with tests and docs, built so your team can run it without me.

01

AI Workflow Automation

Agents and RAG assistants that take over repetitive analyst work — document extraction, data pulls, reconciliations — with evals so you know they work.

LLM agentsRAGEvals

02

Risk & Decision Models

Thresholds, forecasts, and scoring models calibrated on your data — backtested, explained in plain language, and handed over with docs.

StatisticsXGBoostBacktesting

03

Data Pipelines & Dashboards

From scattered files and APIs to one clean source of truth — and a dashboard your team actually opens.

SQLStreamlitPower BI

05 — Contact

Open to AI engineering roles in Canada or Europe, and select freelance work.

LLM agents, retrieval, and evaluation — on top of solid ML and risk modeling, built for regulated environments.

Send a message