paytrail: Payments Medallion Lakehouse
A governed bronze/silver/gold lakehouse over 6.3M synthetic payments on Databricks and Delta: idempotent out-of-order-safe loads, Unity Catalog governance, 51 CI-gated dbt tests, and a code-first BI dashboard.
A governed bronze/silver/gold lakehouse over 6.3M synthetic payments on Databricks and Delta: idempotent out-of-order-safe loads, Unity Catalog governance, 51 CI-gated dbt tests, and a code-first BI dashboard.
Built an end-to-end batch pipeline ingesting 688K+ OSHA workplace-injury records into a PostgreSQL star-schema warehouse (1 fact + 5 dimensions) with dbt, orchestrated by a 7-task Airflow DAG, runnable with a single docker compose up. Added an LLM enrichment layer using a locally-hosted model via Ollama that classified incident narratives at 96.5% coverage at $0 inference cost. Enforced data quality with 81 automated tests wired into a GitHub Actions CI pipeline that fails the build on any data-contract violation.
Forecast six weeks of sales for 1,115 stores with a single LightGBM model, placing top 5% of 3,738 Kaggle teams. Used walk-forward cross-validation to prevent lookahead leakage. A GitHub Actions workflow runs automated tests on the feature engineering pipeline on every push, keeping model inputs validated and the project reproducible.
A two-stage movie recommender on MovieLens 25M: Two-Tower retrieval (PyTorch, FAISS) feeding a 306-feature LightGBM ranker that scores Recall@10 of 0.147 and 0.9206 val AUC. The engagement/diversity trade-off is simulated offline as a 12-point Pareto frontier, with candidate policies validated by SNIPS counterfactual evaluation.
Does a model's explanation survive being replaced by an equally accurate one? My thesis tests this across the Rashomon set on 6 forecasting benchmarks.
A two-stage recommender on 31M H&M transactions: BigQuery SQL retrieval feeding a CatBoost ranker (MAP@12 0.029 vs 0.0053 baseline, a 5.5x lift with a 95% bootstrap CI), plus a temporal-leakage gate, diversity guardrails, a typed FastAPI endpoint, and 80+ tests.
Consolidated fragmented payment, CRM and ERP data from Stripe, Salesforce and NetSuite into a single customer view across ~2M rows, resolving 98% of foreign-key mismatches.
Designed a relational schema for lead-to-member conversion, containerised the Postgres database with Docker, and built a dashboard prototype letting business managers explore 4 revenue KPIs directly.
Fine-tuned BioBERT to extract adverse drug reactions from noisy biomedical text, using Focal Loss to handle severe class imbalance. Rare-entity classes improved by over 20% F1, with 88.92% overall accuracy.
Built PySpark pipelines across 2 years of fashion sales data covering 9 categories, 10 styles and 5 regions. The pipeline found that mid-range pricing ($50 to $150) drives the highest volume and that style preferences split sharply by market, framed as category-level assortment signals.
Forecast hydro generation across Eastern India from 16 months of National Power Portal data, with model selection driven by AIC and BIC.
Implemented REINFORCE, Actor-Critic, and A2C policy gradient algorithms on CartPole-v1 in TensorFlow, then ran 5 independent 1M-step experiments with logging, smoothing, and comparison plots. Extended the environment with transaction-cost penalties to simulate real-world P&L drift and evaluated final reward stability across methods.
Evaluated 4 anonymization methods across 5 real-world graphs, measuring structural preservation (modularity shift under 3%) and re-identification risk (under 1%). Findings show that aggressive anonymization degrades community structure faster than degree distribution, with implications for privacy-utility trade-offs in graph-based ML pipelines.