I work on the part that comes after a model trains: whether it is calibrated, whether anyone should trust a given prediction, and what happens when the world moves away from the data it learned on.
flowchart LR
A["Research<br/>and data"] --> B["Modelling<br/>and UQ"]
B --> G{{"Does it know what<br/>it does not know?"}}
G -- "not yet" --> B
G -- "calibrated" --> C["Engineering"]
C --> D["Evidence-bound<br/>release"]
D -. "drift, recalibration" .-> B
classDef stage fill:#ede9fe,stroke:#5b4b9e,stroke-width:1.5px,color:#2e2a4a;
classDef ship fill:#ccfbf1,stroke:#0f6b5c,stroke-width:1.5px,color:#0b3d35;
classDef gate fill:#fef3c7,stroke:#92610e,stroke-width:1.5px,color:#4a3a0b;
class A,B,C stage;
class D ship;
class G gate;
Most of what is here carries its own evidence. Where a repository publishes a number, something in it checks that number against the files that produced it, because a figure in a README that nothing verifies is a claim, not a result.
mzquadri.de has the case studies and what each one does not establish.
- insureassist-rag-mlops — Measured RAG reference implementation over NFIP policy forms: BGE + BM25 hybrid retrieval, FastAPI,…
yesterday· Python - drift-aware-ml-platform — Hourly demand forecasting that detects concept drift in its own target and retrains itself
7 days ago· Python - mcp-policy-gateway — Runtime policy enforcement and adversarial evaluation for MCP tool calls
7 days ago· Python
Rebuilt daily from push timestamps, so it cannot quietly go stale.
| ml_surrogates_for_agent_based_transport_models | M.Sc. thesis. Six uncertainty-quantification methods on a graph neural network traffic surrogate. Calibration error down 90.5%; withholding the least reliable half of predictions cuts MAE by 41.2%. Forked from the chair's repository, with my contribution separated out in the README. |
| mcp-policy-gateway | Runtime policy enforcement for Model Context Protocol tool calls. Catches 96.2% of an adversarial corpus at a 9.5% false positive rate, against a keyword baseline at 38.5%. Three scored misses are kept in the corpus rather than removed. |
| insureassist-rag-mlops | Retrieval over insurance policy documents, with citations that resolve to exact character offsets. Hybrid BM25 and dense retrieval; top-document accuracy 0.556, up 3.3× from the 0.167 starting point. Hit rate@5 did not improve, and the repository says so. |
| drift-aware-ml-platform | Demand forecasting that watches its own target for drift. On this data only 9% of input features move while the target moves 0.679, so a feature-only monitor would miss a 63% rise in demand. |
| munich-accident-forecasting | Munich road accident forecasting behind a FastAPI service. CI re-runs the pipeline and fails the build unless it reproduces the committed reference run to 1e-9. |
| UQ-Hydrology-Seminar-TUM | Group seminar on uncertainty in a calibrated rainfall-runoff model. Rainfall noise barely touches the fit; measurement error in the observed discharge costs 0.148 NSE and recalibration recovers 5.76% of it. |
13/13 figures on this page were re-checked against the file that produced them, by the workflow that built this line.
Which number comes from which file
| Claim | Source of record | Value | |
|---|---|---|---|
| ✅ | mcp-caught |
mcp-policy-gateway/assets/summary.json |
0.9615 |
| ✅ | mcp-false-block |
mcp-policy-gateway/assets/summary.json |
0.0952 |
| ✅ | mcp-keyword-baseline |
mcp-policy-gateway/assets/summary.json |
0.3846 |
| ✅ | mcp-unhandled |
mcp-policy-gateway/assets/summary.json |
3 |
| ✅ | rag-top-doc |
insureassist-rag-mlops/eval/reference_run.json |
0.5556 |
| ✅ | rag-starting-point |
insureassist-rag-mlops/docs/BENCHMARK.md |
matched |
| ✅ | thesis-ece |
ml_surrogates_for_agent_based_transport_models/docs/UQ_SUMMARY.md |
matched |
| ✅ | thesis-selective-mae |
ml_surrogates_for_agent_based_transport_models/docs/UQ_SUMMARY.md |
matched |
| ✅ | drift-target |
drift-aware-ml-platform/README.md |
matched |
| ✅ | drift-blind-spot |
drift-aware-ml-platform/README.md |
matched |
| ✅ | munich-reproduction |
munich-accident-forecasting/README.md |
matched |
| ✅ | hydro-nse-cost |
UQ-Hydrology-Seminar-TUM/README.md |
0.1484 |
| ✅ | hydro-recovery |
UQ-Hydrology-Seminar-TUM/README.md |
matched |
Notes on reliable AI, calibration and production engineering
13 pieces at mzquadri.de/learn, grouped by what they are about.
Backend and Distributed Systems
Document Intelligence
Explainable AI
MLOps
Machine Learning
Reliable AI Systems
- Building an Independent Verification Oracle
- Equal Counts Do Not Prove Two Stores Agree
- Evidence Provenance for Knowledge Systems
- Production AI Systems Need Refusal Paths
- Re-ingest, Verify, Reconcile, Withdraw
Retrieval and Grounded Generation
Uncertainty Quantification
Every public repository
| Repository | Language | Last pushed | |
|---|---|---|---|
insureassist-rag-mlops |
Python | yesterday | Measured RAG reference implementation over NFIP policy forms: BGE + BM25 hybrid retrieval, FastAPI, Qdrant, reproducible evaluation, Docker and… |
drift-aware-ml-platform |
Python | 7 days ago | Hourly demand forecasting that detects concept drift in its own target and retrains itself. MLflow registry aliases, Evidently, Airflow,… |
mcp-policy-gateway |
Python | 7 days ago | Runtime policy enforcement and adversarial evaluation for MCP tool calls |
MLOps-End-to-End-Pipeline |
Python | 10 days ago | End-to-end ML lifecycle on a licensed dataset: validation, leak-free feature fitting, a promotion gate that can refuse, immutable model bundles, a… |
munich-accident-forecasting |
Python | 11 days ago | Monthly forecasts for Munich road accident counts, per accident category, with a temporal split, baseline comparison and a FastAPI service |
ml_surrogates_for_agent_based_transport_models fork |
Python | 12 days ago | M.Sc. thesis: Uncertainty Quantification for GNN Surrogates of Agent-Based Transport Models (TUM, 2026) |
ZQ |
TypeScript | 2 weeks ago | Personal portfolio source with curated, traceable project links and scoped results |
UQ-Hydrology-Seminar-TUM |
Jupyter Notebook | 2 weeks ago | TUM group seminar project on mathematical uncertainty quantification in hydrology |
Deep-Learning-Flood-Prediction-LSTM |
Python | 2 weeks ago | Controlled LSTM time-series experiment on a synthetic catchment: next-day discharge forecasting scored against day-of-year, persistence and linear… |
Time-Series-Streamflow-Forecasting |
Python | 2 weeks ago | Forecasting benchmark on a synthetic daily streamflow series: XGBoost loses to predicting yesterday, a ridge model wins, and the original… |
jobhunter |
Python | 2 weeks ago | Finds AI/ML jobs worth applying to, scores them against your CV, and drafts the cover letter. FastAPI + Next.js + Postgres on Docker Compose. |
Neural-Network-Identifiability-Analysis |
Python | 4 weeks ago | Numerical verification of neural network parameter symmetries: which transformations leave the represented function unchanged, for tanh, sigmoid… |
Battery-SOC-Estimation-ML |
Python | 4 weeks ago | How a state-of-charge benchmark reports a convincing number without the model learning anything: the split, and four features that restate the… |
Insurance-Claims-Prediction-ML |
Python | 4 weeks ago | Measuring what it costs to choose a decision threshold and a calibrator on the set you report them on. Generated portfolio, known true… |
ML-Water-Quality-Classification |
Python | 4 weeks ago | Synthetic-data classification demonstration; not evidence for water-safety decisions |
Weather-Data-Analytics-EDA |
Python | 4 weeks ago | Deterministic synthetic-weather exploratory analysis and visualization demonstration |
Supply-Chain-Analytics-Dashboard |
Python | 4 weeks ago | Exploratory supply-chain analytics prototype with explicit proxy metrics and chronological evaluation |
medico |
Python | 4 weeks ago | Research training script for multi-label chest X-ray classification across CheXpert, NIH ChestX-ray14 and a pneumonia set, with masked labels and… |
ai-engineering-portfolio |
HTML | 4 weeks ago | Architecture case studies from AI engineering systems I contributed to, spanning verifiable legal knowledge, document intelligence, AI compliance,… |
snake-water-gun |
Python | 4 weeks ago | Small command-line Snake, Water, Gun Python learning exercise |
Statistical-Learning-Transportation |
Jupyter Notebook | 5 weeks ago | Coursework for Statistical Learning and Data Analytics for Transportation Systems (M.Sc. Mathematics in Science and Engineering, TUM) - Problem… |
CNN-Image-Classification-PyTorch |
Python | 5 weeks ago | CIFAR-10 custom CNN reference experiment with tracked evaluation artifacts |
NLP-Text-Classification-Transformers |
Python | 5 weeks ago | AG News text-classification experiment with explicit synthetic fixture for offline development |
colpali fork |
— | 7 weeks ago | The code used to train and run inference with the ColVision models, e.g. ColPali, ColQwen2, and ColSmol. |
iftaar-invitation-2026 |
HTML | 2 months ago | Private event-specific static Iftaar invitation for 2026 |
express fork |
— | 11 months ago | Fast, unopinionated, minimalist web framework for node. |
26 public repositories, including the learning exercises. A list that dropped them would be saying something else.
These cards are rendered by third parties. If one of them is ever blank, the
weekly health
workflow has already opened an issue about it — two of the widgets this profile
originally used went dead that way.
mzquadri.de — the case studies, and what each one does not establish.
