Shopify·Machine Learning Engineer·Take-home Assignment
Jul 2026
Shopify ML Engineer take-home that was really more of a software engineering test than anything ML-related. You get 60 minutes to build a CLI key-value store with OOP, file persistence, unit tests, a README, and a GitHub Actions workflow, then explain your design decisions afterward.
- Design and implement a single-class CLI application supporting add, get, delete, list, help, and exit commands, with file-based state persistence, input validation, and error logging.
- Write comprehensive unit tests covering happy paths, edge cases like duplicate or missing keys, and malformed command handling.
- Set up a GitHub Actions workflow that automatically runs the test suite on every push.
- Explain your class design: how you structured state, methods, and dependency boundaries within the single-class constraint.
- How would you refactor this design to support subcommands or a modular command structure as the application grows?
- What trade-offs did you make given the 60-minute time constraint, and what would you do differently with more time?
“The 60-minute clock made me cut corners I later regretted.” The rest of the author's notes on Machine Learning Engineer interview at Shopify, Take-home Assignment round, covers how they worked through the question, what the panel pushed back on, and what they would do differently.
View Post