Engineering Production-Ready ML/AI Systems - Overview

Course: Engineering Production-Ready ML/AI Systems (5204EPRM6Y), 2026/27 Semester 1, Period 2 Programme: MSc Artificial Intelligence, UvA Credits: 6 EC Lecturer and coordinator: Kemal T. Yesilbek ([email protected]) Course director: Prof. Evangelos Kanoulas Lectures: Wednesdays 15:00-17:45, SP H0.08 Labs: Thursdays 09:00-10:45, SP L1.01 Exam: none. Graded on weekly assignments, a course project and a quiz on the guest lectures.

What the course is about

Building live systems backed by ML or AI. It needs data science and ML knowledge but teaches ML/AI engineering: the skills that make research code reliable and large experiments manageable, and the skills an ML engineer, data engineer or data scientist needs in industry. The course code lives in the lecturer’s repository kemalty/uva-mlprod-code, branch v4.

No (Gen)AI use is allowed on the course work. The reasoning given: build the skills first, AI can assist later. TAs will ask you about your work. (This is the opposite of the Agentic AI course, where AI use is allowed.)

Assessment

Weights are not published. Each Canvas item is worth 10 points. Assignments unlock on Wednesday 12:00 of their week.

ComponentDue (Amsterdam time)Notes
Assignment 0: setting up your environmentno deadline, 0 pointsWSL (on Windows), Python, venv, run main.py
Assignment 1: data-driven roles, ML lifecycle, coding and unit testingTue 3 Nov 23:59Hints from the week 1 lecture: Uber’s structure, “a new feature request”
Assignment 2: distributed data processingTue 10 Nov 23:59Unlocks Wed 4 Nov 12:00
Assignment 4: deploymentTue 24 Nov 23:59Unlocks Wed 18 Nov 12:00
Assignment 3: containerizationFri 27 Nov 23:59Unlocks Wed 11 Nov 12:00. Due after Assignment 4, as Canvas has it
Assignment 5: telemetryTue 1 Dec 23:59Unlocks Wed 25 Nov 12:00
Quiz: guest lecturesThu 10 Dec 23:59Graded quiz on the two guest lectures
Course projectTue 15 Dec 06:00Presented in week 8

Course project. A partially free project: build an end-to-end production-ready ML/AI system for your own idea, using the concepts taught in the course. Start it after week 4. Presentations are in exam week (week 8).

Guest lectures (attendance required, dates not given yet):

  • Basak Tugce Eskili, Senior ML Engineer at Booking.com: “From AI Demo to Production”
  • Mohamed Osama (Oss) el Nagdy, Engineering Manager at Uber: “AI Security”

Setup. macOS, Linux (Ubuntu) or WSL. Tools in rough order of importance: Python, Git, the command line, Python venv, Make; later (Py)Spark, Docker, Kubernetes or Airflow, Prometheus. Setup instructions are in the course repository under w1-setup. Google Cloud vouchers of $50 per person are available for 70 students.


Weekly Schedule

WeekTopicAssignment
1 (28 Oct)Data-driven roles, ML lifecycle, clean code, unit testingA1, due Tue 3 Nov
2Distributed data processing (Spark, Parquet)A2, due Tue 10 Nov
3Containerization and software engineering processes (containers, MLflow, testing, GitFlow)A3, due Fri 27 Nov
4Deployment patterns, APIsA4, due Tue 24 Nov
5Telemetry and CI/CDA5, due Tue 1 Dec
8Course project presentationsProject, due Tue 15 Dec 06:00

Week 1: Roles, lifecycle, clean code, unit testing

TopicNotes
Lecture 1 (Wed 28 Oct)Data-driven roles and teams, the MLOps lifecycle and Dev/Acc/Prod, clean code, unit testingEPRM-L01 - Data Roles, ML Lifecycle, Clean Code and Unit Testing
ReadingsSeiden, Outcomes Over Output; MIT Sloan Management Review, “Achieving Return on AI Projects”; Kästner, “Process and Teams” in Machine Learning in Production; Martin, Clean CodeKästner’s part is three chapters: EPRM-Book Ch20 - Data Science and Software Engineering Process Models, EPRM-Book Ch21 - Interdisciplinary Teams, EPRM-Book Ch22 - Technical Debt. The others are covered inside the lecture note

Week 2: Distributed data processing

TopicNotes
Lecture 2 (Wed 4 Nov)Data size and tool choice, OLTP vs OLAP, row vs columnar storage and Parquet, distributed processing with Spark (operations, lazy evaluation, architecture), fault tolerance and recoveryEPRM-L02 - Distributed Data Processing
ReadingsKleppmann, Designing Data-Intensive Applications, Ch 3, 4, 6, 7No note yet: the book is not freely available

Status


Concept Index

MLOps · Clean Code · Unit Testing · Apache Spark · Apache Parquet · OLTP vs OLAP · Lazy Evaluation