Situation: At my last company, new hires struggled to reproduce experiments and deploy models—onboarding took ~3 weeks and many notebooks had hard-coded paths and missing environment specs.
Task: I needed to make experiments reproducible, speed onboarding, and reduce deployment failures.
Action:
- Introduced a project scaffold (Cookiecutter template) that included standardized folder layout, README with run instructions, and a CONTRIBUTING.md.
- Standardized environments with conda/poetry + lockfiles and added a small script to create envs reproducibly.
- Replaced ad-hoc experiment tracking with MLflow: automatic logging of params, metrics, artifacts; registered models in MLflow Model Registry.
- Put large data and model artifacts under DVC with remote storage; added dvc.yaml pipelines so experiments could be reproduced with dvc repro.
- Added unit tests for data checks and a CI pipeline (GitHub Actions) that runs lint, installs env from lockfile, runs a smoke training on a small sample, and verifies MLflow/DVC integration.
- Wrote a 1-page “reproduce an experiment” quick-start that new hires follow in their first day.
Result:
- Onboarding time to reproduce a baseline experiment fell from ~3 weeks to ~4 business days.
- Reproducible training runs increased; deployment failures due to environment or missing artifacts dropped ~40% in three months.
- Team adoption led to faster iteration and clearer audit trail for model decisions.
This combination (templates + conda/poetry + MLflow + DVC + CI) balanced developer ergonomics and production reliability and is what I’d replicate in future teams.