Skip to content
View mahdikheirkhah's full-sized avatar
🎯
Focusing
🎯
Focusing

Highlights

  • Pro

Block or report mahdikheirkhah

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
mahdikheirkhah/README.md

Mohammad Mahdi Kheirkhah

Data & backend engineer. Currently a Junior Quantitative Analyst in the credit risk team at Ålandsbanken, a regulated Finnish bank, where I do data quality work in SQL and Python against a Snowflake warehouse. B.Sc. Computer Engineering; finishing a two-year ICT qualification at grit:lab in Åland.

I build the parts of a system that have to be right rather than clever: schemas that hold as they grow, loads that stay correct when they are re-run, and models somebody can actually interrogate.

Portfolio · LinkedIn · mahdikheirkhah060@gmail.com


Projects

Credit Scoring & Audit Dashboard An explainable credit-risk model reaching AUC 0.778, against 0.773 for a logistic baseline and 0.785 for LightGBM — most of the black box's accuracy while staying auditable. 500+ raw features cut to a defensible set using Weight-of-Evidence monotonic binning and RFE rather than PCA, with per-variable SHAP contributions behind a Plotly Dash dashboard deployed on Google Cloud Run. Python scikit-learn LightGBM SHAP Plotly Dash Docker GCP

Multilingual Document Processing A DistilBERT classifier across English, Swedish and Finnish at 90.3% accuracy / 0.894 macro-F1, no language below 88.9%. Magnitude pruning and int8 quantization written from scratch in core TensorFlow when the standard toolkit would not wrap Hugging Face's layers, taking the served model from 541 MB to 137 MB with no accuracy loss. TensorFlow Hugging Face spaCy NLP

NLP Scraper — Risk Intelligence Pipeline End-to-end pipeline pulling documents from 13 external sources, classifying topics at over 95% accuracy on an external test set, and loading them into a Snowflake warehouse through a SQL MERGE upsert keyed on a natural key — so re-running the job cannot duplicate a row. Python Snowflake SQL scikit-learn spaCy GloVe

buy-01 — E-Commerce Microservices Six independently deployable Spring Boot services in Java — Eureka registry, Spring Cloud Gateway with JWT validation, tokens in HTTP-only SameSite=Strict cookies. Behind them a 10-stage Jenkins pipeline with SonarQube quality gates that restores the previous image tag automatically on a failed deploy. Built solo over 8.5 months. Java Spring Boot Kafka MongoDB Angular Jenkins Docker

Emotions Detector A VGG-style CNN written from scratch reaching 63.2% accuracy on 7,178 held-out FER-2013 faces, beating a fine-tuned VGG16 baseline with 10× fewer parameters. The decision I would defend hardest: MD5-deduplicating all 35,887 images before splitting, since duplicates straddling the train/test boundary would have inflated the number. 431 pytest tests, CI on every push. TensorFlow Keras OpenCV Streamlit pytest

NSGA-II — Multi-Objective Location-Allocation A from-scratch multi-objective genetic algorithm — fast non-dominated sorting, crowding-distance tournament selection, SBX crossover — collapsing a 42⁴⁴ ≈ 10⁷² feasible space to ~100 Pareto-optimal emergency shelter assignments, with its own hyperparameters tuned by a nested GA. Python NumPy evolutionary algorithms operations research


Stack

Languages Python · SQL · Java · Go · JavaScript/TypeScript · C++

Data Snowflake · PostgreSQL · MongoDB · Redis · SQLite · ETL/ELT · data modelling · data quality & governance

ML TensorFlow/Keras · PyTorch · scikit-learn · Hugging Face Transformers · spaCy · model pruning & quantization · ONNX

Backend & infrastructure Spring Boot · Kafka · REST APIs · Docker · Jenkins · GitHub Actions · Google Cloud Run · Nginx

Also MQTT and embedded sensor work (Arduino/ESP8266) · Claude Code as a daily build tool

Pinned Loading

  1. sp500-strategies sp500-strategies Public

    A quantitative trading pipeline using Machine Learning to outperform the S&P 500. Features time-series cross-validation, out-of-fold signal generation, and risk-managed backtesting.

    Python

  2. credit-scoring credit-scoring Public

    Econometric ML model for credit risk auditing, featuring a custom Double-Tree piecewise architecture for full transparency, deployed as a serverless Dash application on GCP.

    HTML

  3. Matrix-Factorization Matrix-Factorization Public

    Matrix factorization recommender system utilizing SVD and PMF for collaborative filtering. Features deep interpretability of latent factors on highly sparse datasets, anti-overfitting techniques, a…

    Jupyter Notebook

  4. vision-track vision-track Public

    A production-grade pipeline for real-time person detection, unique identity tracking, and foot-traffic analytics. Built with fine-tuned YOLO, BoT-SORT, ONNX, and Streamlit for ultra-fast local edge…

    Jupyter Notebook

  5. Multi-Objective-Location-Allocation-NSGA-II Multi-Objective-Location-Allocation-NSGA-II Public

    Optimized model with NSGA-II in Python, tuning hyperparameters via genetic algorithms for efficient real-world crisis mapping.

    Jupyter Notebook

  6. buy-01 buy-01 Public

    Architected and developed a microservices-based e-commerce platform using Java, Spring Boot, and MongoDB on the backend and Angular for the frontend. Implemented Eureka for service discovery, Kafka…

    Java 2 2