MZQMohd Zamin Quadri

Repository index

Every public repository, labelled by what it can prove.

Categories describe portfolio status, not technical quality. An experiment is never presented as a production system, and a repository that carries no evidence says so in its own entry. Where a repository has been read module by module, its card opens into how it actually runs.

Repositories
29
Categories
6

Selected workGitHub profile

Deep work with a written case study and inspectable evidence.

FeaturedPython

MCP Policy Gateway: Runtime Enforcement for Tool Calls

mcp-policy-gateway

A proxy that sits between an MCP client and an MCP server, inspecting tool declarations, call arguments and returned content, with a 47-case corpus that measures each control against the legitimate traffic a careless rule would break.

A prototype with a reproducible benchmark, not a deployed product. Detection is pattern-based and deterministic, so paraphrased attacks and encoded payloads pass; two of the corpus cases are kept as scored misses and two known false positives are kept for the same reason. The Model Context Protocol SDK is a dependency by other authors, not part of this work.

  • Agent Security
  • Model Context Protocol
  • Prompt Injection
  • Adversarial Benchmark
FeaturedPython

Medico: Chest X-Ray Multi-Label Training

medico

A research training script that fine-tunes a DenseNet-121 across fourteen chest-radiograph findings, combining three source datasets and masking the loss wherever a label is uncertain or simply absent.

Experimental research code and nothing else. The repository ships no trained weights, no patient data, no held-out metrics and no clinical validation, and must not be used for diagnosis, triage or treatment.

  • Medical Imaging
  • DenseNet-121
  • Masked Focal Loss
  • Transfer Learning
FeaturedPython

Reliable GNN Surrogates for Transport Policy

ml_surrogates_for_agent_based_transport_models

Master's thesis codebase studying when a graph neural network surrogate for transport simulation can be trusted, and how uncertainty supports a review decision.

A fork of Elena Natterer's repository, extending it with the uncertainty work. It carries the submitted thesis as a frozen record alongside a working copy that has since been edited, and says which is which. The training and evaluation artifacts it reads are published as release assets on the same repository, because the largest of them exceed GitHub's per-file limit.

  • Uncertainty Quantification
  • Graph Neural Networks
  • Conformal Prediction
  • PyTorch
FeaturedPython

Testable End-to-End MLOps Pipeline

MLOps-End-to-End-Pipeline

The lifecycle around a text classifier on a licensed dataset: checksum-verified data that validation can refuse, leak-free feature fitting, a promotion gate measured against a baseline, atomic checksummed bundles, and a served container.

A reference implementation, not a deployed product. The published result is an ordinary TF-IDF baseline on 600 held-out rows, pooled across three sources, and has never carried production traffic.

  • MLOps
  • Reproducibility
  • FastAPI
  • Data Contracts
  • pytest

Active

Repositories receiving current engineering attention.

ActivePython

InsureAssist: A Measured RAG Service

insureassist-rag-mlops

A local-first question-answering service over the three NFIP Standard Flood Insurance Policy forms. It retrieves the governing passages, answers from them behind a typed FastAPI contract, and returns citations that resolve to character offsets in the source text.

An engineering prototype, built to be measured rather than demonstrated, and the measurements are published with it: unanswerable questions are not detected, 28% of answers cite a block that was never supplied, and results cover one jurisdiction, one peril and three documents. The Kubernetes manifests have been applied on a local kind cluster and the API alone is deployed on Azure Container Apps, so no full stack runs in the cloud and no regulated-data validation is claimed.

  • Retrieval-Augmented Generation
  • Qdrant
  • FastAPI
  • Docker
  • Kubernetes
  • Azure Container Apps
ActiveTypeScript

ZQ: This Platform

ZQ

Source of this website: a server-first Next.js platform with a typed factual registry, evidence and privacy validation, generated metadata, and automated accessibility regression tests.

A personal platform rather than a general-purpose template. Content validation rules encode decisions specific to this portfolio.

  • Next.js
  • Typed Content Model
  • Accessibility Testing
  • Playwright
ActivePython

CareerOS: Scored Job Discovery and Application Drafting

jobhunter

Reads 119 verified job sources every hour, scores each posting against one profile, shows why each score came out the way it did, tracks the roles pursued through a drag-and-drop application pipeline, and drafts the covering letter, so the work left is reading and deciding rather than searching.

It never applies on anyone's behalf, by design. The scores are editorial heuristics tuned to a single profile and establish nothing about how any employer actually reads an application.

  • FastAPI
  • Next.js
  • Scoring
  • Document Drafting

Engineering

Legitimate smaller implementations with a working end-to-end path.

EngineeringPython

Munich Accident Forecasting: A Result, and Whether It Holds

munich-accident-forecasting

Monthly forecasts for seven Munich accident series from the city's open data, served behind a FastAPI contract. A per-series linear trend with monthly seasonal offsets beats the seasonal-naive baseline on the published window, and the same protocol re-run over ordinary years shows the advantage gone. A paired bootstrap separates the two: the published margin clears zero, the earlier one does not.

An educational prototype, not a public-safety forecast. Most of the published margin turns out to be the pandemic repeated forward by the baseline, which the repository measures rather than leaves as a caveat, and on 24 test months only one of the two margins is separable from zero. Nothing here is validated for operational use.

  • Forecasting
  • FastAPI
  • Baseline Comparison
  • Reproducibility
How it runs
  1. DPS_Model.ipynbExplores the Munich accident records
  2. Regression_model.ipynbFits the regression and writes Regressionmodel.pkl
  3. app.pyValidates a year and month, loads the model relative to itself, returns a rounded count
Service
FastAPI
Server
Uvicorn
Model
scikit-learn

Establishes a working path. Claims no accuracy.

EngineeringPython

Weather Analytics: Exploratory Analysis

Weather-Data-Analytics-EDA

A wrangling-and-visualisation walkthrough over deterministic generated daily observations for six cities, covering statistical summaries, seasonality and correlation.

Every observation is produced by a seeded generator. The figures are not weather-station records, climate evidence or forecasts, and support no operational or scientific claim.

  • Exploratory Data Analysis
  • pandas
  • Visualization
  • Synthetic Data
How it runs
  1. src/generate_data.pyWrites ten years of daily observations for six cities from a fixed seed
  2. src/eda_analysis.pyProduces the summaries, seasonality and correlation figures
Data
pandas, NumPy
Statistics
SciPy
Figures
Matplotlib, seaborn

Establishes a working path. Claims no accuracy.

EngineeringPython

Water Quality: Classifier Comparison

ML-Water-Quality-Classification

Four pipelines - logistic regression, random forest, XGBoost and an RBF SVM - compared under cross-validation and hyperparameter tuning on a seeded five-thousand-sample dataset.

The labels are generated, not laboratory measurements. The tracked scores measure how well each model recovers the generator's own class-correlated distributions, and say nothing about whether real water is safe to drink.

  • Classification
  • Cross-Validation
  • XGBoost
  • Synthetic Data
How it runs
  1. src/generate_data.pyGenerates five thousand labelled samples from a fixed seed
  2. src/pipeline.pyRuns all four model families through one cross-validated pipeline and tunes them
Classifiers and cross-validation
scikit-learn
Gradient boosting
XGBoost
Figures
Matplotlib, seaborn

Publishes tracked metrics.

EngineeringPython

Supply Chain Analytics Dashboard

Supply-Chain-Analytics-Dashboard

Cleans order data, computes operational KPIs, compares demand-forecasting baselines, and illustrates classical inventory calculations inside a single Dash application.

Versions source and notebooks only. No dataset, screenshots, or verified business metrics, so no fill-rate or forecast-accuracy claim is made.

  • Plotly Dash
  • Demand Forecasting
  • Inventory Analytics
  • KPIs
How it runs
  1. src/data_ingestion.pyCleans the order records into a processed table
  2. src/kpi_engine.pyComputes the operational indicators
  3. src/demand_forecasting.pyCompares forecasting baselines, continuing if Prophet is unavailable
  4. src/inventory_optimizer.pyEOQ, safety stock and reorder points
  5. src/supplier_scoring.pyGroups departments as an explicit proxy and scores from late delivery
  6. src/dashboard.pyServes all of it
Dashboard
Dash, Plotly
Data
pandas, SQLAlchemy
Statistical baselines
statsmodels
Optional forecaster
Prophet

Publishes no metric. No dataset, processed data, forecast artifact or verified business metric is versioned. The source carries no supplier identifiers and no defect measurements either, so supplier analysis groups departments as an explicit proxy and derives its quality-like score from late delivery.

EngineeringPython

Drift-Aware ML Platform: Retraining on a Signal That Actually Fires

drift-aware-ml-platform

Hourly demand forecasting where the monitor watches the target as well as the inputs, because on this data the covariates hold still while the relationship between them and the target moves. Promotion re-scores the live champion on the challenger's own validation window rather than comparing two numbers measured on different data.

A portfolio project on a public dataset, run on one machine, and not production experience. The Terraform module describes a deployment that has not been applied against a live project, there is no feature store, retraining is a full refit, and the prediction log is a file on a volume, which is fine for one instance and wrong for several.

  • MLOps
  • Drift Monitoring
  • Model Registry
  • Promotion Gates

Research

Academic or mathematical work, including group coursework.

ResearchJupyter Notebook

Uncertainty Quantification in Hydrology

UQ-Hydrology-Seminar-TUM

A three-person TUM seminar connecting HBV rainfall-runoff calibration, local and global sensitivity analysis with a Saltelli estimator written from scratch, input/output uncertainty propagation, DREAM sampling on a MODFLOW model and ROPE parameter estimation.

Group coursework. Individual ownership of each result is not claimed, and course-provided forcing data is not redistributable.

  • Sensitivity Analysis
  • Sobol Indices
  • Rainfall-Runoff Modelling
  • TUM Seminar
ResearchPython

Neural Network Identifiability Analysis

Neural-Network-Identifiability-Analysis

An educational playground for a mathematical question: if two networks agree on every input, must their parameters agree? Accompanies a TUM mathematics seminar on neural-network identification.

Source code and exploratory notebooks only. No versioned experiment configurations or numerical findings, so no empirical identifiability result is established.

  • Mathematical ML
  • Parameter Symmetry
  • Numerical Diagnostics
How it runs
  1. src/network_isomorphisms.pyBuilds networks related by hidden-unit permutations and sign flips
  2. src/identifiability_checks.pyLooks for clone pairs, inactive units and sampled non-degeneracy
  3. src/activation_analysis.pyRecords which assumptions each activation family satisfies
  4. src/symmetry_breaking.pyTries regularisers intended to remove the symmetry
  5. src/visualization.pyDraws the parameter alignment
Networks
PyTorch
Numerics
SciPy, NumPy
Graph structure
NetworkX

Publishes no metric. The checks are finite numerical diagnostics on sampled inputs. They can expose a symmetry; they cannot prove global functional equivalence or satisfy the hypotheses of a published identifiability theorem, and the repository versions no experiment configuration or trained model.

Experiment

Clearly bounded experiments. Not production systems.

ExperimentPython

Keras Against PyTorch on One Exported Split

tf-keras-vs-pytorch-cifar10

The CIFAR-10 CNN from the PyTorch experiment translated to Keras and trained on exactly the same images, with the 15,000 indices exported by running torch rather than reproduced in NumPy. The 815,018 parameter count is derived by hand and asserted on every push, and the five differences between the frameworks are enumerated with the correction each needed.

The Keras run has not been made: the results directory is empty and the README records the accuracy as pending, so no framework comparison is published. Kernel reduction orders differ between frameworks and devices, so an exact match was never available. The parameter count is a floor rather than a proof, and the repository documents what it cannot catch.

  • TensorFlow
  • Keras
  • PyTorch
  • Reproducibility
ExperimentR

Modal Split of Inland Passenger Transport, in R

r-ggplot2-eurostat-report

A Quarto report on the Eurostat modal split table, with every number in the prose computed at render time rather than typed in, so the text cannot drift away from the figures. JSON-stat is decoded by hand rather than through the Eurostat package, and the raw API response is committed and pinned by SHA-256 that CI recomputes.

Descriptive only: it measures shares and says nothing about why any of them moved. Modal split is a share of distance, so a steady car share is consistent with total distance rising or falling underneath it. Coverage is uneven across countries and years, and the snapshot is pinned on a date rather than live.

  • Quarto
  • ggplot2
  • Official Statistics
  • Reproducibility
ExperimentPython

Battery State-of-Charge Estimation

Battery-SOC-Estimation-ML

Compares regression models, clustering, cycle-aware features, and a genetic-fuzzy prototype for inferring lithium-ion state of charge from voltage, current, and temperature.

A research prototype with no dataset, weights, or tracked evaluation. It must not be used to operate a battery-management system or make safety decisions.

  • Time Series
  • Feature Engineering
  • XGBoost
  • LSTM
How it runs
  1. src/data_loader.pyReads authorised NASA files, or generates discharge cycles for development
  2. src/feature_engineering.pyBuilds cycle-aware features from voltage, current, temperature and time
  3. src/soc_regression.pySVR, random forest, XGBoost, LightGBM and an LSTM
  4. src/clustering_analysis.pyK-means and Gaussian mixtures over operating regimes
  5. src/genetic_fuzzy.pyA fuzzy estimator with its rule base optimised by a genetic algorithm
Regressors
scikit-learn, XGBoost, LightGBM
Sequence model
PyTorch
Genetic optimisation
DEAP
Fuzzy inference
scikit-fuzzy

Publishes no metric. Earlier score tables and degradation claims were removed on purpose. The repository has no versioned source split, run configuration, model artifact or metric report to substantiate them, and it names exactly what a meaningful benchmark would have to record: cell identifiers, data version, preprocessing parameters, temporal split, seed, dependency versions and evaluation artifacts.

ExperimentPython

Streamflow Forecasting Benchmark

Time-Series-Streamflow-Forecasting

A controlled benchmark on a fixed-seed synthetic daily series that scores ridge, XGBoost and SARIMAX against persistence, random walk with drift and day-of-year baselines. On 730 held-out days the gradient booster loses to predicting yesterday's value, on all five seeds; only ridge improves on persistence.

Synthetic data, so nothing here describes a real river. The feature models see same-day observed weather, which makes them nowcasts rather than pure one-step forecasts, and SARIMAX is scored on monthly means, so its R2 cannot be ranked against the daily ones.

  • Forecasting
  • Ridge
  • XGBoost
  • Baselines
ExperimentPython

Flood Prediction with LSTM

Deep-Learning-Flood-Prediction-LSTM

Trains an LSTM to read thirty days of precipitation, temperature, and soil moisture and predict next-day discharge, on a deterministic rainfall-runoff generator written for the repository.

A reproducible synthetic-data demonstration. Reported metrics describe the generated benchmark only, not a validated flood-forecasting system.

  • LSTM
  • Sequence Models
  • Hydrology
  • Reproducibility
How it runs
  1. src/generate_data.pyWrites the synthetic catchment from a fixed seed
  2. src/dataset.pyWindows it into 30-day sequences and fits the scalers on training rows only
  3. src/model.pyDefines the LSTM
  4. src/train.pyTrains with early stopping and a learning-rate schedule
  5. src/evaluate.pyScores the held-out period and writes the figures
Sequence model
PyTorch
Scaling and metrics
scikit-learn
Data
NumPy, pandas
Artifacts
joblib

Publishes tracked metrics.

Reference

Early learning exercises, documentation and forks. Listed because the index is complete rather than curated, and not offered as evidence of engineering depth.

ReferencePython

Release Tracking at AUDI AG, a Case Study

audi-release-tracking-case-study

The problem, the design and what was learned from an Excel VBA application built during an internship: a release sheet of about 600 rows and 130 or more columns, read by scanning, replaced by a dropdown and a form whose fields are grouped by subject rather than by column order, writing back to the same sheet and linked through to the release system already in use.

A case study, not the tool. No employer source code, no internal data, no part numbers, no suppliers, no real field values, no screenshots of the real interface and no colleagues' names. Every figure is drawn by a script from the internship report rather than captured. The report records no adoption count, no time saved and no error rate, and none is claimed.

  • Excel VBA
  • UserForms
  • Case Study
  • Internal Tooling
ReferenceJava

BM25 and Rank Fusion on the JVM, Held to a Python Reference

bm25-rrf-java

Okapi BM25 and reciprocal rank fusion with no dependencies in the main source, held to an existing Python implementation by a parity test over fifty real queries. Rankings are compared exactly and scores to a relative 1e-12, and the Java side chunks the corpus itself rather than trusting the exported fixture, so a chunking difference fails as a chunking mismatch.

Parity against one reference implementation on one corpus shows the two agree, not that either is correct. The dense vectors are an exported fixture rather than recomputed on the JVM, and the embedding model is pinned by name only. Fifty questions over three near-duplicate policy forms is a parity harness, not a retrieval benchmark, and no relevance judgement is involved.

  • BM25
  • Reciprocal Rank Fusion
  • Parity Testing
  • Floating Point
ReferenceHTML

Architecture case studies

ai-engineering-portfolio

The separate case-study site: architecture diagrams of the employer systems contributed to, an interactive walkthrough, and a written record of what each claim rests on, published under its own redaction review.

Documentation of systems built elsewhere, not an implementation. It states a contribution level for every component and claims no authorship of the platform it describes.

  • Architecture
  • Documentation
  • Evidence Boundaries
ReferenceJavaScript

express (Upstream Fork)

express

A fork of the upstream Express web framework.

No authored contribution. It appears here only because this index lists every public repository, including the ones that flatter nobody.

  • Fork
  • Upstream
ReferencePython

colpali (Upstream Fork)

colpali

A fork of the upstream ColPali repository, a vision-language retriever that indexes document pages as images rather than as extracted text.

No authored contribution. Listed for the same reason as the fork above: this index covers every public repository, not only the flattering ones.

  • Fork
  • Upstream
  • Document Retrieval
ReferenceJupyter Notebook

Statistical Learning Coursework

Statistical-Learning-Transportation

Three graded problem sets from a TUM master's course: linear regression and diagnostics; then PCA, support vector machines and tree ensembles; then backpropagation, Bayesian optimisation, sequence forecasting, Markov decision processes and convolution.

University coursework, published for reference rather than as a research contribution. Sixty-six of the numbers its reports quote were recomputed afterwards from the committed artifacts and all sixty-six matched. The problem sheets it includes are the chair's material, not mine.

  • Coursework
  • Regression
  • Ensembles
  • Neural Networks
ReferencePython

CIFAR-10 CNN Baseline

CNN-Image-Classification-PyTorch

A compact image-classification experiment with a tracked configuration, learning history, per-class diagnostics, and an honestly recorded reference result.

A bounded educational baseline on a 15,000-image training subset. No checkpoint is versioned and no state-of-the-art result is claimed.

  • PyTorch
  • Computer Vision
  • Class Diagnostics
ReferencePython

Insurance Claims Prediction Pipeline

Insurance-Claims-Prediction-ML

Works through classification, probability calibration with Platt scaling or isotonic regression, cost-sensitive threshold selection, and SHAP-based attribution.

Source and notebooks only, with no versioned data, model, or evaluation report. It is not an underwriting, pricing, or claims-decision system.

  • Probability Calibration
  • SHAP
  • Cost-Sensitive Thresholds
How it runs
  1. src/data_pipeline.pyCleans, encodes and scales, fitting every transformer on training rows only
  2. src/model_training.pyLogistic regression and random forest, with optional boosting
  3. src/calibration.pyPlatt scaling or isotonic regression, cross-validated
  4. src/threshold_optimizer.pyChooses an operating threshold against a cost matrix
  5. src/explainability.pySHAP attributions over the fitted model
Models and calibration
scikit-learn
Boosting
XGBoost, LightGBM
Attribution
SHAP
Class imbalance
imbalanced-learn
Data access
Kaggle CLI

Publishes no metric. The repository contains source and notebooks only. It versions no data, no split, no trained model, no calibration output and no evaluation report, so there is nothing to substantiate a number with.

ReferencePython

Transformers vs Classical NLP Baselines

NLP-Text-Classification-Transformers

Runs TF-IDF baselines and a fine-tuned DistilBERT against the same AG News task with the same evaluation, so the two tracks can be compared rather than asserted.

Versions source and notebooks but not data, checkpoints, or metrics, so no accuracy, F1, or model-comparison claim is published.

  • DistilBERT
  • Hugging Face
  • TF-IDF
  • Benchmarking
How it runs
  1. src/data_loader.pyFetches AG News, and stops rather than silently using the offline fixture
  2. src/model.pyThe TF-IDF baselines and the DistilBERT configuration
  3. src/train.pyFits a baseline, or fine-tunes through the Hugging Face Trainer
  4. src/evaluate.pyClassification metrics, confusion matrices and optional latency
  5. src/inference.pyRuns either track from a locally saved artifact
Transformer
Transformers, Tokenizers
Training loop
Accelerate
Corpus access
Datasets
Baselines and metrics
scikit-learn

Publishes no metric. Data, trained models, checkpoints, metrics, plots and run metadata are all untracked, so the repository declines to state how the two tracks compared.

ReferenceMarkdown

Profile README

mzquadri

The README GitHub renders on the profile page. It points at this site and at the handful of repositories worth opening first, with what each one measured.

A signpost, not work. Every figure it quotes belongs to the repository it links to, and is checked there rather than here.

  • Profile
  • Index

Repository details are a reviewed offline snapshot. This page makes no request to GitHub, publishes no contribution counts or activity dates, and renders identically if GitHub is unavailable.

Reading the labels

Not every repository is flagship work, and none of them pretend to be.

Reference and experiment repositories are kept public because the reasoning in them is useful, not because they carry production evidence. Where a claim needs proof, the case study links directly to the artifact.

Selected work