β Home
Projects
Production-focused ML projects β end-to-end system design from model development through deployment and monitoring.
Time Series Forecasting at Scale
Stack: PyTorch, Hydra, MLflow, Optuna, FastAPI, Docker, Streamlit
Result: 7.1% MAPE on Walmart M5 (28-day horizon, walk-forward validation, no data leakage)
Links: Repo | Demo (~30s cold start)


Production-grade forecasting portfolio with reusable ML components across retail sales, rideshare demand, and inventory planning.
Challenge
- Forecasting solutions need to generalize across diverse business domains without rewriting pipelines
- Fair model comparison requires controlled experiments: same data splits, same metrics, same preprocessing
- Scaling to 80K+ time series samples while keeping experiments reproducible
Architecture Decisions
- Hydra for config management β every experiment is fully reproducible from a single YAML file. No hard-coded parameters.
- MLflow for tracking β all runs logged with metrics, parameters, and artifacts. Trivial to compare statistical vs. deep learning approaches across domains.
- Optuna for HPO β Bayesian optimization over grid search. Pruning cuts unpromising trials early, saving compute on the 10+ architecture sweep.
- FastAPI for serving β prediction endpoints with confidence intervals, not just point forecasts. Dockerized for consistent deployment.
- Streamlit for stakeholder demos β interactive dashboard lets non-ML users explore forecasts and compare models visually.
Model Zoo
- Statistical: LightGBM, XGBoost, CatBoost, Prophet, ARIMA, SARIMA
- Deep Learning: LSTM, TCN, Transformer
- Domains: Walmart M5 retail, Ola rideshare, inventory planning, Transportation TSI
Results
- 7.1% MAPE on Walmart retail (28-day forecast horizon, walk-forward validation)
- 80K+ time series samples across 4 real-world projects
- Production pipeline: data ingestion β training β serving (Dockerized)
- 10+ architectures benchmarked with tracked experiments
Movie Recommendation System
Stack: PyTorch, Hydra, MLflow, Optuna, Gradio, Streamlit
Result: RMSE ~0.323 on MovieLens (610 users, 9,742 movies, 100K+ ratings)
Links: Repo | Demo (~30s cold start)
End-to-end recommendation system β full ML lifecycle from training through experiment tracking to production deployment with global API access.
Challenge
- Building multiple recommendation approaches that can be fairly compared under identical conditions
- Making ML demos accessible to non-technical users while maintaining engineering rigor
- Deploying a live system with low-latency inference
Architecture Decisions
- 4 model architectures for systematic comparison β deep collaborative filtering (neural matrix factorization), hybrid (collaborative + content signals), traditional collaborative filtering, and content-based. Each shares the same training/eval harness.
- Hydra + MLflow + Optuna β same reproducibility stack as the forecasting project. Consistent tooling across projects reduces cognitive overhead.
- Dual deployment β Gradio for quick interactive demos, Streamlit for richer exploration. Both served from the same model artifacts.
- Hugging Face Spaces β zero-ops deployment with global CDN.
Results
- RMSE ~0.323 on MovieLens test set
- Live deployment on Hugging Face Spaces
- Full ML lifecycle: data pipeline β training β HPO β serving
- Multiple interfaces: Gradio, Streamlit, REST API
Floorplan Wall Segmentation (2D to 3D)
Stack: PyTorch, DeepLabV3, OpenCV, Hydra, ONNX
Result: 99.4% pixel accuracy β wall-class F1 significantly above baseline despite 96/4 class split, 50ms inference
Links: Repo

Computer vision for semantic segmentation of architectural floorplans β identifying walls to enable automated 2D-to-3D conversion.
Challenge
- Extreme class imbalance in RPLAN dataset: 96.2% background, 3.7% walls, 0.01% rooms
- Processing 80K+ architectural floorplan images (64K train, 16K val)
- Accurate wall boundary detection needed for downstream 3D reconstruction
Architecture Decisions
- DeepLabV3 + ResNet50 β atrous convolution captures multi-scale context, critical for walls that vary from thin lines to thick structural elements. Transfer learning from ImageNet despite the domain gap.
- Class weighting β standard cross-entropy would ignore the 3.7% wall class. Inverse-frequency weighting forces the model to learn wall boundaries.
- OpenCV postprocessing β morphological closing/opening + connected component analysis cleans up noisy predictions. Cheaper and more interpretable than a larger model.
- Mixed precision (AMP) β halves GPU memory, enabling larger batch sizes on the 80K dataset.
- ONNX export β decouples inference from PyTorch. Enables deployment on edge devices or non-Python backends.
Results
- 99.4% pixel accuracy β note: with 96% background, pixel accuracy alone is misleading. The modelβs value is in wall-class performance (F1/Dice significantly above a naive baseline)
- 80K+ images: 64K training, 16K validation
- 50ms inference β fast enough for interactive use
- ONNX export for cross-platform deployment
More Projects
GitHub profile for additional projects and contributions.