Machine learning engineer · Beirut, Lebanon

Anyone can show you
a model that works.
I show you the number.

I'm a machine learning engineer who builds the evaluation harness before the demo. Retrieval I can measure, probabilities I can calibrate, pipelines that replay identically months later — and results published as they came out, including the ones that lost to a naive baseline.

Portrait of Wassim Bannout
Based in
Beirut, Lebanon
Degrees
BS Computer Science · BBA
Edge
ML engineering & financial systems

01 — Selected work

Four systems, and the evidence each one produced.

Every number below comes from a public repository you can clone and re-run. Where a result was unflattering, it's here too — that's rather the point.

Eval-first LLM systems2026

RAGauge

Measure your RAG.

A retrieval-augmented QA system over SEC 10-K filings where the headline isn't the chatbot — it's the evaluation harness. Hand-verified golden set, retrieval and groundedness metrics, an ablation that proves each stage earns its complexity, real cost accounting, and a regression-blocking CI gate.

  • 0.58recall@5
    voyage-finance-2
  • 1.00groundedness
    supported-claim rate
  • 0.00unsupported
    claim rate
  • $0.32per eval run
    30-question sweep
  • Deterministic retrieval ablation across three embedding strategies — no LLM in the loop, so the number is reproducible.
  • A three-model judged sweep picks the generator by data: the cheapest tier won on groundedness and cost simultaneously.
  • 10-K filings chosen deliberately as a hard target — adversarial HTML, huge financial tables, dense footnotes. 789 chunks, 76 offline unit tests green.
  • Python
  • RAG
  • Embeddings
  • LLM evaluation
  • CI gates
Read the code
Quantitative ML2026

Equity Portfolio Forecasting

Reproducible to the eighth decimal.

A daily forecasting and allocation system over a twelve-equity universe: Prophet forecasts per ticker, constrained mean-variance allocation, atomic publication to PostgreSQL, and a read-only dashboard over the published history.

  • 410passing tests
    incl. real database
  • 1e-8replay tolerance
    bit-comparable
  • 58modules
    strict type checking
  • Hash-pinned inputs and a fully locked runtime: any run replays identically, months later, on another machine.
  • Tested like production — real PostgreSQL integration, native Prophet fits, a browser flow, and a backup-and-restore drill, green on every push.
  • The model lost to a last-price baseline, and the report says so. No trading or profitability claim is made anywhere in it.
  • Python
  • Prophet
  • SciPy
  • PostgreSQL
  • Streamlit
  • GitHub Actions
Read the code
Applied supervised ML2026

OctoPredict

Calibrated probabilities, not just predictions.

A football match prediction platform producing three-way outcome probabilities across four leagues, with the full ML lifecycle automated behind it.

  • XGBoost over 22 engineered features — dynamic Elo ratings, rolling form, head-to-head history, rest days — with isotonic calibration so the probabilities mean what they say.
  • Scored honestly with Brier score and Ranked Probability Score, not accuracy alone.
  • Data refreshed twice daily, Elo recomputed from full history, model retrained automatically; one-command Docker deploy.
  • Python
  • XGBoost
  • FastAPI
  • Next.js
  • Docker
Read the code
Decision theory · RL2026

HogLab

Not a good strategy — the optimal one.

A complete computational study of the dice game Hog: solved exactly by value iteration over the full state space, with a tournament arena and a live win-probability oracle.

  • Value iteration over the 100×100 MDP converges in roughly 40 sweeps to the exact win-probability surface; V(0,0) ≈ 0.5692 quantifies the first-mover advantage.
  • Round-robin tournament across seven strategies, reported with 95% Wilson confidence intervals rather than bare win counts.
  • 63 passing tests covering rules, distributions, solver convergence and the API.
  • Python
  • Value iteration
  • MDPs
  • Flask
Read the code

02 — Experience

Where I've worked.

  1. Apr 2026 — Present

    Accountant · HABannout CPA

    Built a Python tool (pandas, openpyxl) that parses Excel trial balances, maps account codes against the Lebanese chart of accounts, validates that debits equal credits, and emits a formatted workbook with the balance sheet, income statement and prior-period comparatives — replacing a repeated manual process. Day to day: ledger maintenance, reconciliations and month-end close.

  2. Jan — Feb 2026

    Software Developer · IP Engineering Pro

    Built business applications on the ERPNext/Frappe platform in Python, including a point-of-sale system. Ran an end-to-end data migration for a banking client, cleansing malformed spreadsheets before import. Shipped a scheduled-automation feature with both manual and daily execution modes, delivered in Agile sprints.

  3. Nov — Dec 2025

    Software Development Intern · IDS Fintech

    Relational database and SQL work inside a fintech data environment — query writing, schema design, data integrity — alongside .NET backend development with C# and Dapper.

  4. Mar — May 2025

    Frontend Developer Intern · MyMonty

    Built responsive, component-based interfaces in Angular and TypeScript, translating design mockups into working, responsive UI.

Education

BS, Computer Science

American University of Beirut · 2023–2025

BBA, Business Administration

American University of Beirut · 2018–2021

03 — Toolkit

What I work with.

Machine learning

Linear & logistic regression · decision trees · random forests · XGBoost · k-means · PCA · anomaly detection · recommenders · reinforcement learning & value iteration

Deep learning

Neural networks · CNNs · transfer learning · TensorFlow · Keras

Evaluation

Probability calibration · Brier score & RPS · cross-validation · precision, recall, F1 · ROC-AUC · RMSE · bias–variance analysis · retrieval recall@k · groundedness

LLM systems

Retrieval-augmented generation · embedding & retrieval ablation · LLM-as-judge · golden sets · cost and latency accounting · pgvector

Data & languages

Python · SQL · C · Java · TypeScript · C# · NumPy · pandas · scikit-learn · Matplotlib · Jupyter · PostgreSQL

Shipping

FastAPI · Flask · Streamlit · Docker · Kubernetes · GitHub Actions · Next.js · Spring Boot · AWS Lambda

Foundations: Machine Learning Specialization (DeepLearning.AI) · Machine Learning Zoomcamp (DataTalksClub) · CS50 (Harvard)

04 — About

The short version.

I started in business, moved to computer science, and landed somewhere useful in between. I currently work inside a CPA firm, which means I read a balance sheet about as fluently as a training loop. A trial balance and a feature pipeline are the same kind of object: structured input, rules that must hold, an output somebody will act on. Getting the rules wrong is expensive in both.

That's shaped how I build. I'd rather ship a model with a validation gate in front of it than a better score I can't reproduce next week. It's why three of my projects are really measurement harnesses wearing an application as a disguise — and why, when the forecasting model lost to a naive baseline, the result went in the README instead of the bin. A system you can't trust the numbers from isn't finished. It's just quiet.

Away from the keyboard I read Arabic poetry and philosophy, and keep circling back to mathematics and physics — for much the same reason I like this work. There's a particular satisfaction in a model that finally explains something, whether it's written in Python or in verse.

05 — Contact

Looking for someone
who finishes things.

I work across machine learning, AI, data science and software engineering — and on quantitative problems, where the finance background stops being a footnote. If you're building something where the numbers have to be right, I'd like to hear about it.