harvard-edge/cs249r_bookPublic

Machine Learning Systems: Foundations, Scaling, Agentic AI, and Physical AI (Vols I–IV) • Harvard CS249r | https://mlsysbook.ai

AI summary: The open-source textbook and courseware for Harvard's CS249r: Machine Learning Systems, covering edge ML to cloud infrastructure.

Stars
28.8K
+80 today
Forks
3.6K
Watchers
219
Open issues
6
Open PRs
0
Contributors
~125
Commits
22.6K
Branches
73

PythonOtherCreated Sep 6, 2023Last push 2d agoLatest release vol1-v0.7.2+363 stars this week+686 this month

Quick answers

What is cs249r_book?
The open-source textbook and courseware for Harvard's CS249r: Machine Learning Systems, covering edge ML to cloud infrastructure.
What does cs249r_book do?
This repository hosts the comprehensive textbook, assignments, and underlying systems code for Harvard University's course on engineering artificially intelligent systems. It addresses the critical intersection of machine learning algorithms and the computer systems required to execute them efficiently. The technical curriculum dives deep into hardware-aware model optimization, embedded machine learning (TinyML), distributed training, and the orchestration of cloud-scale ML pipelines. What sets this apart is its rigorous, academic approach to the full ML lifecycle, treating AI not just as mathematics, but as complex engineering systems that must be optimized for power, latency, and throughput. It provides world-class educational material completely open to the public.
Who is cs249r_book for?
This material is intended for advanced computer science students, systems engineers, and ML practitioners looking to understand the intersection of hardware and AI. It requires strong programming skills (C++/Python) and a foundation in computer architecture.
How do I get started with cs249r_book?
Read the textbook directly on GitHub or follow the setup instructions in the README to build the TinyTorch environment.
How popular is cs249r_book on GitHub?
harvard-edge/cs249r_book has 28,790 stars and 3,631 forks on GitHub, and gained 363 stars in the last 7 days.
What license does cs249r_book use?
harvard-edge/cs249r_book is released under the Other license.

Star history

since Jul 29, 2026
010K20KJul 2026Aug 2026Sep 2026Oct 2026
28.8K stars as of Oct 2, 2026. Measured daily since Jul 29, 2026; GitHub no longer exposes earlier star timestamps.

Contribution activity

commits per day, last 52 weeks
SepOctNovDecJanFebMarAprMayJunJulAugSepMonWedFri2025-09-28: 19 commits2025-09-29: 3 commits2025-09-30: 2 commits2025-10-01: 9 commits2025-10-02: 33 commits2025-10-03: 7 commits2025-10-04: 27 commits2025-10-05: 15 commits2025-10-06: 37 commits2025-10-07: 45 commits2025-10-08: 36 commits2025-10-09: 31 commits2025-10-10: 2 commits2025-10-11: 0 commits2025-10-12: 6 commits2025-10-13: 2 commits2025-10-14: 0 commits2025-10-15: 0 commits2025-10-16: 0 commits2025-10-17: 14 commits2025-10-18: 3 commits2025-10-19: 4 commits2025-10-20: 2 commits2025-10-21: 0 commits2025-10-22: 0 commits2025-10-23: 0 commits2025-10-24: 20 commits2025-10-25: 1 commit2025-10-26: 15 commits2025-10-27: 4 commits2025-10-28: 3 commits2025-10-29: 22 commits2025-10-30: 8 commits2025-10-31: 15 commits2025-11-01: 55 commits2025-11-02: 37 commits2025-11-03: 29 commits2025-11-04: 17 commits2025-11-05: 34 commits2025-11-06: 8 commits2025-11-07: 8 commits2025-11-08: 1 commit2025-11-09: 21 commits2025-11-10: 14 commits2025-11-11: 5 commits2025-11-12: 2 commits2025-11-13: 1 commit2025-11-14: 0 commits2025-11-15: 0 commits2025-11-16: 2 commits2025-11-17: 0 commits2025-11-18: 0 commits2025-11-19: 1 commit2025-11-20: 2 commits2025-11-21: 1 commit2025-11-22: 0 commits2025-11-23: 0 commits2025-11-24: 0 commits2025-11-25: 14 commits2025-11-26: 3 commits2025-11-27: 2 commits2025-11-28: 2 commits2025-11-29: 1 commit2025-11-30: 2 commits2025-12-01: 2 commits2025-12-02: 19 commits2025-12-03: 11 commits2025-12-04: 7 commits2025-12-05: 34 commits2025-12-06: 33 commits2025-12-07: 25 commits2025-12-08: 20 commits2025-12-09: 11 commits2025-12-10: 45 commits2025-12-11: 82 commits2025-12-12: 25 commits2025-12-13: 31 commits2025-12-14: 58 commits2025-12-15: 37 commits2025-12-16: 22 commits2025-12-17: 23 commits2025-12-18: 25 commits2025-12-19: 21 commits2025-12-20: 11 commits2025-12-21: 30 commits2025-12-22: 3 commits2025-12-23: 3 commits2025-12-24: 4 commits2025-12-25: 0 commits2025-12-26: 0 commits2025-12-27: 8 commits2025-12-28: 32 commits2025-12-29: 15 commits2025-12-30: 28 commits2025-12-31: 7 commits2026-01-01: 34 commits2026-01-02: 33 commits2026-01-03: 28 commits2026-01-04: 30 commits2026-01-05: 24 commits2026-01-06: 45 commits2026-01-07: 28 commits2026-01-08: 4 commits2026-01-09: 50 commits2026-01-10: 34 commits2026-01-11: 32 commits2026-01-12: 8 commits2026-01-13: 24 commits2026-01-14: 31 commits2026-01-15: 31 commits2026-01-16: 18 commits2026-01-17: 8 commits2026-01-18: 3 commits2026-01-19: 17 commits2026-01-20: 21 commits2026-01-21: 57 commits2026-01-22: 63 commits2026-01-23: 85 commits2026-01-24: 41 commits2026-01-25: 69 commits2026-01-26: 83 commits2026-01-27: 57 commits2026-01-28: 42 commits2026-01-29: 20 commits2026-01-30: 30 commits2026-01-31: 28 commits2026-02-01: 51 commits2026-02-02: 49 commits2026-02-03: 23 commits2026-02-04: 54 commits2026-02-05: 11 commits2026-02-06: 22 commits2026-02-07: 18 commits2026-02-08: 32 commits2026-02-09: 10 commits2026-02-10: 13 commits2026-02-11: 12 commits2026-02-12: 13 commits2026-02-13: 12 commits2026-02-14: 11 commits2026-02-15: 15 commits2026-02-16: 8 commits2026-02-17: 16 commits2026-02-18: 6 commits2026-02-19: 25 commits2026-02-20: 4 commits2026-02-21: 36 commits2026-02-22: 34 commits2026-02-23: 10 commits2026-02-24: 31 commits2026-02-25: 12 commits2026-02-26: 29 commits2026-02-27: 12 commits2026-02-28: 8 commits2026-03-01: 15 commits2026-03-02: 38 commits2026-03-03: 19 commits2026-03-04: 34 commits2026-03-05: 14 commits2026-03-06: 27 commits2026-03-07: 23 commits2026-03-08: 19 commits2026-03-09: 15 commits2026-03-10: 9 commits2026-03-11: 7 commits2026-03-12: 12 commits2026-03-13: 25 commits2026-03-14: 26 commits2026-03-15: 50 commits2026-03-16: 48 commits2026-03-17: 17 commits2026-03-18: 43 commits2026-03-19: 27 commits2026-03-20: 34 commits2026-03-21: 57 commits2026-03-22: 44 commits2026-03-23: 45 commits2026-03-24: 54 commits2026-03-25: 52 commits2026-03-26: 1 commit2026-03-27: 1 commit2026-03-28: 2 commits2026-03-29: 1 commit2026-03-30: 12 commits2026-03-31: 56 commits2026-04-01: 53 commits2026-04-02: 107 commits2026-04-03: 38 commits2026-04-04: 16 commits2026-04-05: 89 commits2026-04-06: 5 commits2026-04-07: 59 commits2026-04-08: 60 commits2026-04-09: 57 commits2026-04-10: 11 commits2026-04-11: 3 commits2026-04-12: 16 commits2026-04-13: 11 commits2026-04-14: 14 commits2026-04-15: 40 commits2026-04-16: 129 commits2026-04-17: 71 commits2026-04-18: 163 commits2026-04-19: 63 commits2026-04-20: 295 commits2026-04-21: 99 commits2026-04-22: 262 commits2026-04-23: 64 commits2026-04-24: 145 commits2026-04-25: 132 commits2026-04-26: 107 commits2026-04-27: 70 commits2026-04-28: 61 commits2026-04-29: 42 commits2026-04-30: 107 commits2026-05-01: 51 commits2026-05-02: 38 commits2026-05-03: 150 commits2026-05-04: 126 commits2026-05-05: 70 commits2026-05-06: 208 commits2026-05-07: 122 commits2026-05-08: 25 commits2026-05-09: 60 commits2026-05-10: 55 commits2026-05-11: 176 commits2026-05-12: 227 commits2026-05-13: 69 commits2026-05-14: 44 commits2026-05-15: 29 commits2026-05-16: 13 commits2026-05-17: 55 commits2026-05-18: 152 commits2026-05-19: 117 commits2026-05-20: 55 commits2026-05-21: 117 commits2026-05-22: 69 commits2026-05-23: 74 commits2026-05-24: 75 commits2026-05-25: 83 commits2026-05-26: 143 commits2026-05-27: 124 commits2026-05-28: 192 commits2026-05-29: 79 commits2026-05-30: 104 commits2026-05-31: 146 commits2026-06-01: 57 commits2026-06-02: 118 commits2026-06-03: 304 commits2026-06-04: 290 commits2026-06-05: 64 commits2026-06-06: 160 commits2026-06-07: 62 commits2026-06-08: 101 commits2026-06-09: 49 commits2026-06-10: 107 commits2026-06-11: 180 commits2026-06-12: 58 commits2026-06-13: 84 commits2026-06-14: 11 commits2026-06-15: 98 commits2026-06-16: 27 commits2026-06-17: 108 commits2026-06-18: 4 commits2026-06-19: 8 commits2026-06-20: 14 commits2026-06-21: 25 commits2026-06-22: 59 commits2026-06-23: 28 commits2026-06-24: 16 commits2026-06-25: 16 commits2026-06-26: 14 commits2026-06-27: 15 commits2026-06-28: 10 commits2026-06-29: 17 commits2026-06-30: 11 commits2026-07-01: 3 commits2026-07-02: 31 commits2026-07-03: 16 commits2026-07-04: 1 commit2026-07-05: 5 commits2026-07-06: 0 commits2026-07-07: 14 commits2026-07-08: 5 commits2026-07-09: 0 commits2026-07-10: 34 commits2026-07-11: 12 commits2026-07-12: 14 commits2026-07-13: 29 commits2026-07-14: 13 commits2026-07-15: 19 commits2026-07-16: 4 commits2026-07-17: 21 commits2026-07-18: 35 commits2026-07-19: 1 commit2026-07-20: 0 commits2026-07-21: 1 commit2026-07-22: 1 commit2026-07-23: 1 commit2026-07-24: 6 commits2026-07-25: 1 commit2026-07-26: 6 commits2026-07-27: 9 commits2026-07-28: 6 commits2026-07-29: 0 commits2026-07-30: 0 commits2026-07-31: 2 commits2026-08-01: 1 commit2026-08-02: 0 commits2026-08-03: 50 commits2026-08-04: 30 commits2026-08-05: 59 commits2026-08-06: 43 commits2026-08-07: 25 commits2026-08-08: 24 commits2026-08-09: 14 commits2026-08-10: 99 commits2026-08-11: 40 commits2026-08-12: 73 commits2026-08-13: 52 commits2026-08-14: 76 commits2026-08-15: 82 commits2026-08-16: 40 commits2026-08-17: 150 commits2026-08-18: 30 commits2026-08-19: 4 commits2026-08-20: 4 commits2026-08-21: 4 commits2026-08-22: 5 commits2026-08-23: 17 commits2026-08-24: 38 commits2026-08-25: 29 commits2026-08-26: 47 commits2026-08-27: 69 commits2026-08-28: 49 commits2026-08-29: 112 commits2026-08-30: 48 commits2026-08-31: 86 commits2026-09-01: 35 commits2026-09-02: 40 commits2026-09-03: 81 commits2026-09-04: 133 commits2026-09-05: 29 commits2026-09-06: 48 commits2026-09-07: 150 commits2026-09-08: 21 commits2026-09-09: 73 commits2026-09-10: 179 commits2026-09-11: 130 commits2026-09-12: 100 commits2026-09-13: 30 commits2026-09-14: 221 commits2026-09-15: 126 commits2026-09-16: 97 commits2026-09-17: 105 commits2026-09-18: 77 commits2026-09-19: 72 commits2026-09-20: 182 commits2026-09-21: 142 commits2026-09-22: 171 commits2026-09-23: 15 commits2026-09-24: 4 commits2026-09-25: 4 commits2026-09-26: 3 commits
15,311 commits in the last yearLessMore

Signals and awards

derived from tracked data
  • Widely adopted

    28,790 stars

  • Very active

    15,311 commits in 52 weeks

  • Community-driven

    ~125 contributors

  • Well documented

    High community health score

  • Continuous integration

    Automated checks passing

  • Repeat trending

    5 trending appearances

What cs249r_book does

This repository hosts the comprehensive textbook, assignments, and underlying systems code for Harvard University's course on engineering artificially intelligent systems. It addresses the critical intersection of machine learning algorithms and the computer systems required to execute them efficiently. The technical curriculum dives deep into hardware-aware model optimization, embedded machine learning (TinyML), distributed training, and the orchestration of cloud-scale ML pipelines. What sets this apart is its rigorous, academic approach to the full ML lifecycle, treating AI not just as mathematics, but as complex engineering systems that must be optimized for power, latency, and throughput. It provides world-class educational material completely open to the public.

This material is intended for advanced computer science students, systems engineers, and ML practitioners looking to understand the intersection of hardware and AI. It requires strong programming skills (C++/Python) and a foundation in computer architecture.

  • Full-Stack ML Curriculum: covers the entire spectrum of ML systems, from training models on distributed clusters to deploying them on microcontrollers.
  • TinyTorch Implementation: includes a custom, educational deep learning framework designed specifically to teach the internals of ML runtimes.
  • Hardware-Aware Optimization: provides deep dives into quantization, pruning, and compiling models for specific hardware architectures.
  • Continuous Validation: utilizes GitHub Actions to automatically test the course code and validate the Markdown builds of the textbook.
  • Multi-Language Support: offers translations of the core materials into multiple languages, expanding accessibility for global learners.

Where teams use it

Systems Engineering Education

Computer science students use the material to understand how popular frameworks like PyTorch and TensorFlow actually work under the hood.

Edge AI Development

Embedded engineers study the TinyML sections to learn techniques for deploying neural networks onto severely resource-constrained microcontrollers.

Infrastructure Scaling

MLOps professionals reference the cloud sections to design more efficient, distributed training pipelines that maximize GPU utilization.

Curriculum Development

Educators at other institutions fork the repository to adapt the high-quality assignments and textbook for their own advanced systems courses.

Getting started: Read the textbook directly on GitHub or follow the setup instructions in the README to build the TinyTorch environment.

README

dev branch

Machine Learning Systems

Principles and Practices of Engineering Artificially Intelligent Systems

English • 中文 • 日本語 • 한국어


Mission

The world is rushing to build AI systems. It is not engineering them.

That gap is what we mean by AI engineering.

AI engineering is the discipline of building efficient, reliable, safe, and robust intelligent systems that operate in the real world, not just models in isolation. Our mission is to establish AI engineering as a foundational discipline alongside software engineering and computer engineering, by teaching how to design, build, and evaluate end-to-end intelligent systems.

Our goal: Help 100,000 learners master ML Systems this year, and reach 1 million by 2030.


Why One Repository

I designed this as a single integrated curriculum, not a collection of independent projects. The textbook teaches the theory. TinyTorch makes you build the internals. The hardware kits force you to confront real constraints. The simulator lets you reason about infrastructure you can't afford to rent. Each piece exists because I found that students who only read don't internalize, and students who only code don't generalize.

The repository is the curriculum.

A growing community of contributors helps improve every part of it: fixing errors, sharpening explanations, testing on new hardware. Their work makes this better for everyone, and I'm grateful for every pull request.


The Curriculum

Every component connects. The textbook gives you the mental models. The labs let you reason through trade-offs interactively, powered by MLSys·im — a modeling engine for infrastructure you can't physically access, and a standalone tool in its own right. TinyTorch makes you build the machinery yourself. The hardware kits put you face-to-face with real deployment constraints. StaffML tests whether you actually understand it. Socratiq adds AI-guided reading, contextual quizzes, and spaced repetition inside the learning experience. And the instructor hub, slides, and newsletter give educators everything they need to bring this into a classroom.

Curriculum map showing how the textbook, labs, TinyTorch, hardware kits, MLSys·im, and StaffML connect

For Students

Component Role in the Curriculum Link
📖 Textbook Series Four-volume MIT Press textbook series on Machine Learning Systems Architecture:
• Vol I: Introduction to Machine Learning Systems (Released)
   The foundations, abstractions, lifecycle, data, training, inference, evaluation, deployment, and responsible systems.
• Vol II: Scaling Machine Learning Systems (Preview)
   Distributed computation, accelerators, memory, communication, parallelism, serving, reliability, and efficiency.
• Vol III: Agentic Machine Learning Systems (In Development)
   Reasoning and acting loops, memory, tools, planning, search, orchestration, evaluation, security, and multi-agent systems.
• Vol IV: Physical AI Systems (In Development)
   Sensing, perception, world models, control, robotics, embodiment, real-time constraints, safety, and hardware.

⚠️ Volumes III and IV are in development and change quickly as I iterate. Please do not cite or teach from them yet. Feedback is welcome through the Book feedback issue forms.
Vol I · Vol II (Preview) · Vol III (In Dev) · Vol IV (In Dev)
🔬 Labs Interactive Marimo notebooks where you explore trade-offs from the textbook: change a parameter, see what breaks, build intuition. Powered by MLSys·im under the hood. Launch labs · Repo guide
🔥 Tiny🔥Torch Build your own ML framework from scratch across 20 progressive modules. You don't understand a system until you've built one. Get started
🛠️ Hardware Kits Deploy ML to Arduino, Seeed, Grove, and Raspberry Pi devices. Real memory limits, real power budgets, real latency. Browse labs
🔮 MLSys·im Calculate memory bottlenecks, network saturation, and scheduling limits at infrastructure scales you can't physically access. Use simulator · Repo guide
💼 StaffML Physics-grounded interview questions for ML systems roles. Vault, practice drills, mock interviews, and progress tracking. Practice · Repo guide

For Educators

Component What It Provides Link
🎓 Instructor Hub The AI Engineering Blueprint: two 16-week syllabi, pedagogy guide, assessment rubrics, and a TA handbook. View hub · Repo guide
🎬 Lecture Slides Beamer slide decks for every chapter, with four theme variants. Drop into your course and teach. Browse decks · Repo guide
📬 Newsletter Updates on the curriculum, new chapters, and what the community is building. Subscribe

Choose Your Path

The pieces are designed to work together, but you do not need to adopt everything at once.

If you are... Start here Then go deeper
A student or self-learner Read Volume I and try Lab 00 Build TinyTorch, use MLSys·im, and practice with StaffML
An instructor Open The AI Engineering Blueprint Use the course map, slides, rubrics, and TA guide
A contributor Pick the component you use most Improve chapters, labs, tests, examples, hardware notes, simulator models, or assessment content

The learning loop is: Read → Explore → Build → Model → Deploy → Practice → Teach.

Adjacent and Experimental Work

Some projects are intentionally earlier-stage than the main curriculum:

  • Socratiq explores AI-guided reading, contextual quizzes, and spaced repetition for static learning sites.
  • MLPerf EDU is an under-construction pedagogical benchmark suite aligned with MLCommons MLPerf.

What You Will Learn

This textbook teaches you to think at the intersection of machine learning and systems engineering. Each chapter bridges algorithmic concepts with the infrastructure that makes them work in practice.

You know... You will learn...
How to train a model → How training scales across GPU clusters
That quantization shrinks models → How INT8 math maps to silicon
What a transformer is → Why KV-cache dominates memory at inference
Models run on GPUs → How schedulers balance latency vs throughput
Edge devices have limits → How to co-design models and hardware

Book Structure

The textbook series follows a comprehensive systems progression across four core volumes:

Volume Unit of Work Core Systems Question Consequence of Failure
📗 Volume I
Foundations
The Model How do we make intelligence execute efficiently on a single node? Bad prediction or degraded runtime efficiency.
📘 Volume II
Scaling (Preview)
The Fleet How do we scale intelligence across distributed clusters and datacenters? Multi-million dollar cluster stall or service outage.
🟣 Volume III
Agentic (In Dev)
The Trajectory How do we govern intelligence acting autonomously over long horizons? Compounding trajectory drift and unauthorized side-effects.
🌲 Volume IV
Physical AI (In Dev)
The Physical Plant How do we let intelligence act safely on matter and physical systems? Irreversible physical damage in the real world.

Note: Volumes III and IV are in development. They change quickly as I iterate, so expect chapters to be added, reorganized, and rewritten. You are welcome to follow along as they take shape.

How the Volumes Connect

Each volume in the series expands the systems boundary, answering the question that the previous level leaves open:

  • From Model to Fleet (Vol I → Vol II): When one machine is not enough. Volume I masters single-node execution, memory walls, and kernel efficiency. Volume II scales those foundations across thousands of accelerators, collective communication fabrics, fault-tolerant networks, and datacenter orchestration.
  • From Request to Trajectory (Vol II → Vol III): When a stateless response is not enough. Volume II scales stateless request-response inference. Volume III introduces stateful, multi-step autonomous loops—managing context memory hierarchies, tool execution protocols (MCP), isolation sandboxes, and non-deterministic recovery.
  • From Cyberspace to Matter (Vol III → Vol IV): When software acts on the physical world. Volume III governs digital tools and software environments. Volume IV crosses the causal boundary into physical plants—governing real-time sensor-actuator loops where computational latency becomes uncontrolled distance, reflected inertia dictates motion, and failure has irreversible physical consequences.

FAQ

Why do you do all this?

I consider myself a student of my own learning.

Whenever I want to understand an emerging or complex systems discipline, I learn it by trying to teach and build it from first principles. Writing forces me to slow down: to identify invariants, formalize abstractions, derive quantitative limits, and separate durable engineering foundations from passing industry hype.

This repository—the books, software frameworks, and hardware kits—is my open research and teaching instrument. It is how I clarify my own thinking for research, benchmarking programs (like MLPerf), and classroom instruction. If sharing this open process helps other engineers and students along the way, you are more than welcome to follow along.

Who is this for, and what should I know first?

This is for anyone who wants to engineer intelligent systems, not only train models: students, working engineers moving into ML infrastructure, and educators building a course. We assume you can program in Python and have met basic machine learning ideas, but the book builds the systems concepts from the ground up. You do not need a background in computer architecture, distributed systems, or datacenter operations. Volume I starts at the foundations, and the rest of the curriculum (TinyTorch, labs, hardware kits, and the simulator) lets you learn by building rather than only by reading.

Do I need Volume I before Volume II? What is the difference?

The two volumes differ in scope, not depth. Both are equally rigorous. Volume I is the single-machine world: how an ML system works on one node with a handful of accelerators, from data and a single neuron's computation up through training, optimization, and deployment. Volume II is the at-scale world: many machines across a network, distributed training, fault tolerance, fleet orchestration, inference at scale, and governance. Volume II does not assume you have read Volume I, so you can start there if you already have the foundations. The natural path, though, is Volume I to build the mental models and Volume II to apply them across the fleet. The analogy we follow is Hennessy and Patterson: Computer Organization and Design first, then Computer Architecture: A Quantitative Approach.

Do I need to use TinyTorch, the labs, and the kits, or can I just read the book?

You can just read the book. Each volume stands on its own. The rest of the curriculum (TinyTorch, the labs, the hardware kits, the simulator, and the interview practice) exists to deepen what the book teaches by making you build and measure it, but none of it is required to follow the text. Start with the book, and reach for the hands-on pieces when you want a concept to become muscle memory.

Isn't this just a deep learning book?

Deep learning books (Goodfellow et al.'s Deep Learning, Bishop, d2l.ai, fast.ai) teach you to design and train models: architectures, optimization, and the mathematics of learning. They mostly stop at the model. This book starts where they leave off. It treats the model as one component inside a system that has to ingest data, run on real silicon under power and latency budgets, serve predictions reliably, and keep working as the world drifts. You can finish a deep learning course knowing how a transformer learns and still not know why it stalls on a 4,000-accelerator training run, what the KV cache does to your serving memory, or why your accelerator sits idle. That gap is what we teach. Learn the model from a deep learning text, then learn the system here.

Isn't this MLOps, or the same as Designing Machine Learning Systems?

This is the most common mix-up, because "ML systems" and "MLOps" sound interchangeable and several good practitioner books share the words. MLOps books are operations guides: how to wire up a feature store, a pipeline, and a deployment with today's tools. They are valuable, and they age with the tooling. This book teaches the layer underneath: the physics and quantitative reasoning that explain why those tools exist and what they cost. We ask which questions matter, why a design is the way it is, and what it cannot escape (bandwidth, latency, power, failure rates).

Think of the difference between following a recipe and understanding how cooking works. A recipe gives you exact steps for one dish: this temperature, this pan, this many minutes. It works beautifully until the oven, the ingredients, or the kitchen changes. Understanding why heat, salt, acid, and time transform food is different. It lets you cook in any kitchen, rescue a dish that is going wrong, and invent one that no recipe covers.

An MLOps book hands you the recipe for the stack you have today. This book teaches the underlying science, so you can reason about any stack, debug the one that is failing, and design the one that does not exist yet.

How is this different from a classic systems reference like The Datacenter as a Warehouse-Scale Computer?

References like Barroso, Hölzle, and Clidaras's The Datacenter as a Warehouse-Scale Computer are excellent. They distill how one organization engineered one canonical system, written by the people who built it. This project is a different kind of artifact, and the two are complementary rather than competing.

  1. Curriculum, not reference. A synthesis lecture documents a finished design for practitioners who already know the field. This book teaches the discipline from the ground up, with learning objectives, worked quantitative examples, labs, and an AI tutor, and it carries the reader from a single neuron (Volume I) all the way to the warehouse-scale fleet (Volume II).

  2. Vendor neutral, not a single stack. A vendor reference can say "here is how we do it" and quote real production numbers. We generalize across accelerators (GPU and TPU), across cloud and edge, and teach why a design is the way it is, so the reasoning survives the next hardware generation and transfers anywhere.

  3. Living, not a snapshot. A printed edition is frozen until its next revision. This is open source, continuously updated, and surrounded by code you build yourself (TinyTorch), hardware kits, a simulator, and interview practice.

In short, a warehouse-scale reference tells you how one machine was built. This curriculum teaches you to reason about why, and builds the judgment to design the next one.

Why read a textbook in the age of LLMs?

Because a textbook gives you something an LLM does not: perspective. An LLM is excellent at retrieval, and we are not trying to compete on retrieval. If a paragraph only delivers a fact you could get faster by asking a model, it has not earned its place. What a book builds instead is a structured mental model in the right order, the judgment to know which questions matter, and the reasoning behind why a design is the way it is and what it costs. Much of that comes from what a textbook chooses to leave out, since deciding what is central and what is peripheral is itself a lesson that an encyclopedic pile of facts cannot teach.

Bruce Davie makes this case well in "Textbooks in Tokenland" (Systems Approach): an LLM generates text that is not grounded in communicative intent, while a textbook is written by people trying to convey a model of the world to a reader. We agree, and we go one step further by building an AI tutor (SocratiQ) into the reading experience. The goal is not textbook versus LLM. A good book gives you the perspective to ask meaningful questions, and the LLM helps you answer them. Use each for what it does best.

Is it free, and how do I read it?

Yes. Both volumes are free to read online at mlsysbook.ai, and the textbook is open source under a Creative Commons license (CC BY-NC-SA 4.0), so you can share and adapt it for non-commercial use with attribution. If you prefer print, a hardcopy edition is coming in 2026 with MIT Press. The surrounding tools are open source too, each under its own license.


Quick Start

①

Read the textbook. Start with Volume I or continue to Volume II. It's the foundation for everything else.

②

Pick a hands-on path. Build a framework (TinyTorch), explore trade-offs (Labs), model constraints (MLSys·im), or deploy to real hardware (Kits).

③

Test yourself. Drill StaffML: physics-grounded systems design questions across cloud, edge, mobile, and TinyML.

④

Teach it. Adopt the curriculum with the AI Engineering Blueprint and lecture slides.

Branch Guide

Note

You are on the dev branch. Active development happens here. For the last stable release, see the main branch.

Branch What's on it Status
🟢 main
mlsysbook.ai
Single-volume textbook (current edition) Live — this is what readers see today.
🟡 dev
← you are here
Volume I — two-volume split (content complete, editorial polish)
Volume II — Scaling (active development)
Curriculum — TinyTorch, Kits, MLSys·im, Labs, StaffML
TinyTorch and Hardware Kits are live.
MLSys·im, Labs, and StaffML are early-release and actively iterated.

The two-volume split replaces the single-volume edition at launch.


Support This Work

Stars    Open Collective

Star the repo
Stars signal to universities and foundations that this work matters. They directly fund workshops and hardware kits for underserved classrooms.

Star History Chart
100 → 1,000 → 10,000 → 100,000 → 1M learners by 2030
Fund the mission
All contributions go to Open Collective, a transparent fund for educational outreach. Every dollar goes to reaching more students.

Open Collective

Contributing

I want to... Go here
📖 Fix a typo or improve a chapter Textbook contributing guide
🔥 Add a TinyTorch module or fix a bug TinyTorch contributing guide
🛠️ Improve hardware labs Hardware kits guide
🔬 Improve interactive labs or simulator models Labs guide · MLSys·im guide
💼 Improve assessment or career-readiness content StaffML guide
🧠 Improve AI learning tools Socratiq guide
🐛 Report an issue GitHub Issues
💬 Ask a question GitHub Discussions

License

This is a multi-component repository, and each component is released under its own license to match its purpose. The file inside each directory (e.g. tinytorch/LICENSE, staffml/app/LICENSE) is authoritative.

Component License What it means
Textbook (books/), Labs (labs/), Kits (kits/), Slides (slides/), Instructors (instructors/) CC-BY-NC-SA 4.0 Share and adapt for non-commercial use, with attribution and same-license sharing.
TinyTorch MIT Permissive — use, modify, redistribute, including commercially.
MLSys·im Apache 2.0 Permissive with explicit patent grant.
StaffML AGPL v3 Strong copyleft — modifications to deployed services must be published. Commercial licensing available; contact the authors.
StaffML question corpus CC BY-NC 4.0 Research and educational use; commercial use requires permission.
TinyDigits dataset BSD 3-Clause Permissive (matches sklearn ancestry).
TinyTalks dataset CC BY 4.0 Permissive with attribution; commercial use allowed.

A user-facing summary lives at mlsysbook.ai/about/license.

If you are an institution considering adoption, or a company interested in commercial terms for a copyleft component, please reach out to edu@tinyML.org.


Contributors

Thanks goes to these wonderful people who have contributed to making this resource better for everyone!

Legend: 🪲 Bug Hunter · 🧑‍💻 Code Contributor · ✍️ Doc Wizard · 🎨 Design Artist · 🧠 Idea Spark · 🔎 Code Reviewer · 🧪 Test Tinkerer · 🛠️ Tool Builder

📖 Textbook Contributors

Vijay Janapa Reddi
Vijay Janapa Reddi

🪲 🧑‍💻 🎨 ✍️ 🧠 🔎 🧪 🛠️
Zeljko Hrcek
Zeljko Hrcek

🪲 🧑‍💻 🎨 ✍️ 🛠️
Rocky
Rocky

🪲 🧑‍💻 🎨 ✍️
Farhan Asghar
Farhan Asghar

🪲 🧑‍💻 🎨 ✍️
Marcelo Rovai
Marcelo Rovai

🧑‍💻 🎨 🧪
Gabriel Amazonas
Gabriel Amazonas

🪲 ✍️ 🧠
Octopus
Octopus

🪲 🧑‍💻 ✍️
Tess Watt
Tess Watt

🪲 ✍️
Jahnic Beck
Jahnic Beck

🪲 ✍️
bluebaer
bluebaer

🪲 ✍️
Kai Kleinbard
Kai Kleinbard

🧑‍💻 🛠️
Didier Durand
Didier Durand

✍️ 🪲
Salman Chishti
Salman Chishti

🧑‍💻 ✍️
GronuJ
GronuJ

🪲 ✍️
Gustaf Hammarberg
Gustaf Hammarberg

🪲 🧑‍💻
Aayush Kumar
Aayush Kumar

🪲 🧑‍💻
Yue Cheng
Yue Cheng

🪲 🧑‍💻
s3rg3ysh
s3rg3ysh

🪲 ✍️
Johnson K C
Johnson K C

🧑‍💻 🛠️
mehdi B
mehdi B

🪲 🧑‍💻
Jason Jabbour
Jason Jabbour

✍️
Ikechukwu Uchendu
Ikechukwu Uchendu

✍️
Naeem Khoshnevis
Naeem Khoshnevis

✍️
Sara Khosravi
Sara Khosravi

✍️
Douwe den Blanken
Douwe den Blanken

✍️
Jeffrey Ma
Jeffrey Ma

✍️
shanzehbatool
shanzehbatool

✍️
Elias
Elias

✍️
Jared Ping
Jared Ping

✍️
Itai Shapira
Itai Shapira

✍️
Maximilian Lam
Maximilian Lam

✍️
Jayson Lin
Jayson Lin

✍️
Sophia Cho
Sophia Cho

✍️
Andrea
Andrea

✍️
Alex Rodriguez
Alex Rodriguez

✍️
Korneel Van den Berghe
Korneel Van den Berghe

✍️
Nimo
Nimo

✍️
Colby Banbury
Colby Banbury

✍️
Zishen Wan
Zishen Wan

✍️
Mark Mazumder
Mark Mazumder

✍️
Abdulrahman Mahmoud
Abdulrahman Mahmoud

✍️
Divya Amirtharaj
Divya Amirtharaj

✍️
Srivatsan Krishnan
Srivatsan Krishnan

✍️
marin-llobet
marin-llobet

✍️
Aghyad Deeb
Aghyad Deeb

✍️
Haoran Qiu
Haoran Qiu

✍️
Emil Njor
Emil Njor

✍️
ELSuitorHarvard
ELSuitorHarvard

✍️
kaiM0ves
kaiM0ves

✍️
oishib
oishib

✍️
Jared Ni
Jared Ni

✍️
Aditi Raju
Aditi Raju

✍️
Michael Schnebly
Michael Schnebly

✍️
Thuong Duong
Thuong Duong

✍️
Yu-Shun Hsiao
Yu-Shun Hsiao

✍️
Henry Bae
Henry Bae

✍️
Eimhin Laverty
Eimhin Laverty

✍️
Jae-Won Chung
Jae-Won Chung

✍️
Shvetank Prakash
Shvetank Prakash

✍️
Marco Zennaro
Marco Zennaro

✍️
Arya Tschand
Arya Tschand

✍️
Andrew Bass
Andrew Bass

✍️
Pong Trairatvorakul
Pong Trairatvorakul

✍️
Eura Nofshin
Eura Nofshin

✍️
Matthew Stewart
Matthew Stewart

✍️
Emeka Ezike
Emeka Ezike

✍️
jianqingdu
jianqingdu

✍️
Jennifer Zhou
Jennifer Zhou

✍️
The Random DIY
The Random DIY

✍️
Fatima Shah
Fatima Shah

✍️
Bruno Scaglione
Bruno Scaglione

✍️
Allen-Kuang
Allen-Kuang

✍️
Tauno Erik
Tauno Erik

✍️
gnodipac886
gnodipac886

✍️
Sercan Aygün
Sercan Aygün

✍️
TheHiddenLayer
TheHiddenLayer

✍️
Gauri Jain
Gauri Jain

✍️
Fin Amin
Fin Amin

✍️
Alex Oesterling
Alex Oesterling

✍️
Abenezer Angamo
Abenezer Angamo

✍️
Baldassarre Cesarano
Baldassarre Cesarano

✍️
अरनव शुक्ला | Arnav Shukla
अरनव शुक्ला | Arnav Shukla

✍️
Rin
Rin

✍️
Bilge Acun
Bilge Acun

✍️
Andy Cheng
Andy Cheng

✍️
Aritra Ghosh
Aritra Ghosh

✍️
abigailswallow
abigailswallow

✍️
Yang Zhou
Yang Zhou

✍️
JEON HYUNJUN(Luciano)
JEON HYUNJUN(Luciano)

✍️
Emmanuel Rassou
Emmanuel Rassou

✍️
Jason Yik
Jason Yik

✍️
Jessica Quaye
Jessica Quaye

✍️
Cursor Agent
Cursor Agent

✍️
happyappledog
happyappledog

✍️
Snuggs
Snuggs

✍️
Sam Wilcock
Sam Wilcock

✍️
Shreya Johri
Shreya Johri

✍️
Sonia Murthy
Sonia Murthy

✍️
Costin-Andrei Oncescu
Costin-Andrei Oncescu

✍️
formlsysbookissue
formlsysbookissue

✍️
Annie Laurie Cook
Annie Laurie Cook

✍️
Parampreet Singh
Parampreet Singh

✍️
Vijay Edupuganti
Vijay Edupuganti

✍️
Jothi Ramaswamy
Jothi Ramaswamy

✍️
Batur Arslan
Batur Arslan

✍️
Curren Iyer
Curren Iyer

✍️
Edward Jin
Edward Jin

✍️
yanjingl
yanjingl

✍️
a-saraf
a-saraf

✍️
songhan
songhan

✍️
jvijay
jvijay

✍️
Zishen
Zishen

✍️
Kristian Radoš
Kristian Radoš

✍️

Recent activity

commits and pull requests

Recent open issues

view all

Discussions

all 69

Releases and announcements

27 total
  1. # Release vol1-v0.7.2: Volume I camera-ready polish: final copyediting, reference and index corrections, page-balance refinements, footnote and sidenote placement fixes, and restored public PDF cover. ## Overview This patch release includes the following changes: # Release Notes for vol1-v0.7.2 ## Changes since vol1-v0.7.1 ### Recent Commits: a036bd77 chore: bump volume version(s) to vol1-v0.7.2

  2. Machine Learning Systems: Volume I v0.7.0 and Volume II v0.2.0vol1-v0.7.0+vol2-v0.2.0Jun 24, 2026612 downloads

    ## Machine Learning Systems: Volume I v0.7.0 and Volume II v0.2.0 This release ships a comprehensive editorial and production pass across both volumes, refreshing the HTML, PDF, and EPUB builds. It also answers the question we hear most often, so this note opens with a clear guide to what each volume covers and which one to read. --- ## 📚 Which volume should I read? Volume I vs Volume II **Short answer:** Volume I teaches you how a machine learning system works and how to build one. Volume II teaches you what changes when machine learning runs at scale, across many machines, many users, and long-lived production fleets. Volume I is about the single system. Volume II is about the fleet. The two volumes are separate, self-contained reading paths. Volume I assumes no prior systems background and is the place to start. Volume II assumes you are comfortable with the foundations from Volume I and goes deep on large-scale and production concerns. | | **Volume I** | **Volume II** | |---|---|---| | **Title** | *Introduction to Machine Learning Systems* | *Machine Learning Systems at Scale* | | **Version** | v0.7.0 | v0.2.0 | | **Core question** | How do you build, train, optimize, an

  3. ## TinyTorch v0.1.13 Patch release focused on **framework correctness**. It lands autograd, convolution, attention, and quantization fixes that close real gradient and numerical stability bugs, plus a substantial hardening of the **release and grading pipeline** (nbgrader tiers, `tito` preflight, PDF builds) and a round of **community dashboard** repairs. Version bumped from `0.1.12` to `0.1.13`. ### ✨ New Features - **AvgPool2d autograd backward** (M09 `convolutions`): `AvgPool2d` now participates in the autograd graph, distributing the upstream gradient uniformly across each pooling window so convolutional milestones can be trained from input to loss. (PR by @vedant-a-joshi) ### 🐛 Framework Correctness (autograd and ops) The core of this release. Each fix addresses a case where the framework silently produced wrong gradients or values: - **MatmulBackward for 1D vector inputs** (M06 `autograd`): corrected gradient computation when one or both operands are 1D. The vector and matrix broadcasting in the backward pass was previously mishandled. - **`tracked_mul` scalar handling** (M06 `autograd`, #1871): now wraps a raw scalar in a `Tensor` before passing it to `MulBackward` in

  4. Lecture Slides (Latest)slides-latestMay 11, 202613.3K downloads

    ## ML Systems Lecture Slides Complete slide decks for the ML Systems curriculum. **Volume I** (17 decks): Introduction through Conclusion — single-machine ML systems **Volume II** (18 decks): Introduction through Conclusion — distributed ML at scale **TinyML** (5 chapters): HarvardX Professional Certificate — edge & embedded ML Vol I/II decks include speaker notes, active learning exercises, and original SVG diagrams. ### Downloads — PDF - **MLSysBook-Slides-All-PDF.zip** — All 35 Vol I/II decks - **MLSysBook-Slides-Vol1-PDF.zip** — Volume I only - **MLSysBook-Slides-Vol2-PDF.zip** — Volume II only ### Downloads — PowerPoint Image-based PPTX (not editable text) — use for presenter mode and annotations. - **MLSysBook-Slides-All-PPTX.zip** — All 35 Vol I/II decks - **MLSysBook-Slides-Vol1-PPTX.zip** — Volume I only - **MLSysBook-Slides-Vol2-PPTX.zip** — Volume II only ### Downloads — TinyML (HarvardX edX) - **MLSysBook-TinyML-All.zip** — All slides, readings, and supplementary materials - **MLSysBook-TinyML-Slides.zip** — 178 slide decks only - **MLSysBook-TinyML-Readings.zip** — 127 readings only Individual Vol I/II chapter files (PDF + PPTX) are also attached below. ### Sou

  5. ## TinyTorch v0.1.10 Largest Lab Guide upgrade since the series began, plus substantive framework work: new Tensor API surface (`view`, `masked_fill`, `ndim`, `numel`, `contiguous`), `no_grad()` context manager, Python 3.10+ baseline, 28 security alerts resolved, seven batches of module-audit fixes, reproducibility via seeded `default_rng(7)`, and 847/847 tests green. ### ✨ New Features **Lab Guide PDF** (the flagship of this release) - **Glossary back matter**: 90 alphabetical entries covering tensor/memory, autograd, training systems, architecture, optimization, and ML basics, with module cross-references (see `glossary.qmd`). - **Module opener hooks**: every module starts with a 2–3 sentence systems-first framing paragraph leading with memory, bandwidth, arithmetic intensity, HBM, or roofline implications before the ML story. - **Code listing captions + List of Listings**: ~60 substantive code blocks carry `Listing N.M — Description` captions; populates a new List of Listings in the front matter. - **List of Figures + List of Tables** in front matter (151 newly-captioned tables). - **Running headers with chapter + section**: verso `Chapter N · Title`, recto `N.M · Section`,

Commits per week

last 52 weeks
11390Week of 2025-09-28: 100 commitsWeek of 2025-10-05: 166 commitsWeek of 2025-10-12: 25 commitsWeek of 2025-10-19: 27 commitsWeek of 2025-10-26: 122 commitsWeek of 2025-11-02: 134 commitsWeek of 2025-11-09: 43 commitsWeek of 2025-11-16: 6 commitsWeek of 2025-11-23: 22 commitsWeek of 2025-11-30: 108 commitsWeek of 2025-12-07: 239 commitsWeek of 2025-12-14: 197 commitsWeek of 2025-12-21: 48 commitsWeek of 2025-12-28: 177 commitsWeek of 2026-01-04: 215 commitsWeek of 2026-01-11: 152 commitsWeek of 2026-01-18: 287 commitsWeek of 2026-01-25: 329 commitsWeek of 2026-02-01: 228 commitsWeek of 2026-02-08: 103 commitsWeek of 2026-02-15: 110 commitsWeek of 2026-02-22: 136 commitsWeek of 2026-03-01: 170 commitsWeek of 2026-03-08: 113 commitsWeek of 2026-03-15: 276 commitsWeek of 2026-03-22: 199 commitsWeek of 2026-03-29: 283 commitsWeek of 2026-04-05: 284 commitsWeek of 2026-04-12: 444 commitsWeek of 2026-04-19: 1060 commitsWeek of 2026-04-26: 476 commitsWeek of 2026-05-03: 761 commitsWeek of 2026-05-10: 613 commitsWeek of 2026-05-17: 639 commitsWeek of 2026-05-24: 800 commitsWeek of 2026-05-31: 1139 commitsWeek of 2026-06-07: 641 commitsWeek of 2026-06-14: 270 commitsWeek of 2026-06-21: 173 commitsWeek of 2026-06-28: 89 commitsWeek of 2026-07-05: 70 commitsWeek of 2026-07-12: 135 commitsWeek of 2026-07-19: 11 commitsWeek of 2026-07-26: 24 commitsWeek of 2026-08-02: 231 commitsWeek of 2026-08-09: 436 commitsWeek of 2026-08-16: 237 commitsWeek of 2026-08-23: 361 commitsWeek of 2026-08-30: 452 commitsWeek of 2026-09-06: 701 commitsWeek of 2026-09-13: 728 commitsWeek of 2026-09-20: 521 commitsSep 28, 2025Sep 20, 2026
15.3K commits in the last 52 weeks.

When work happens

weekday and hour
SunMonTueWedThuFriSat036912151821Sun 0:00 — 28 commitsSun 1:00 — 26 commitsSun 2:00 — 42 commitsSun 3:00 — 18 commitsSun 4:00 — 15 commitsSun 5:00 — 7 commitsSun 6:00 — 27 commitsSun 7:00 — 51 commitsSun 8:00 — 110 commitsSun 9:00 — 169 commitsSun 10:00 — 164 commitsSun 11:00 — 172 commitsSun 12:00 — 135 commitsSun 13:00 — 130 commitsSun 14:00 — 197 commitsSun 15:00 — 266 commitsSun 16:00 — 146 commitsSun 17:00 — 183 commitsSun 18:00 — 197 commitsSun 19:00 — 147 commitsSun 20:00 — 114 commitsSun 21:00 — 70 commitsSun 22:00 — 89 commitsSun 23:00 — 46 commitsMon 0:00 — 51 commitsMon 1:00 — 26 commitsMon 2:00 — 53 commitsMon 3:00 — 41 commitsMon 4:00 — 53 commitsMon 5:00 — 88 commitsMon 6:00 — 28 commitsMon 7:00 — 84 commitsMon 8:00 — 122 commitsMon 9:00 — 128 commitsMon 10:00 — 154 commitsMon 11:00 — 181 commitsMon 12:00 — 196 commitsMon 13:00 — 229 commitsMon 14:00 — 177 commitsMon 15:00 — 204 commitsMon 16:00 — 223 commitsMon 17:00 — 190 commitsMon 18:00 — 182 commitsMon 19:00 — 201 commitsMon 20:00 — 253 commitsMon 21:00 — 191 commitsMon 22:00 — 142 commitsMon 23:00 — 92 commitsTue 0:00 — 106 commitsTue 1:00 — 43 commitsTue 2:00 — 22 commitsTue 3:00 — 22 commitsTue 4:00 — 10 commitsTue 5:00 — 12 commitsTue 6:00 — 54 commitsTue 7:00 — 124 commitsTue 8:00 — 221 commitsTue 9:00 — 116 commitsTue 10:00 — 143 commitsTue 11:00 — 141 commitsTue 12:00 — 115 commitsTue 13:00 — 136 commitsTue 14:00 — 159 commitsTue 15:00 — 148 commitsTue 16:00 — 141 commitsTue 17:00 — 139 commitsTue 18:00 — 172 commitsTue 19:00 — 143 commitsTue 20:00 — 181 commitsTue 21:00 — 145 commitsTue 22:00 — 130 commitsTue 23:00 — 109 commitsWed 0:00 — 65 commitsWed 1:00 — 48 commitsWed 2:00 — 26 commitsWed 3:00 — 29 commitsWed 4:00 — 24 commitsWed 5:00 — 24 commitsWed 6:00 — 48 commitsWed 7:00 — 105 commitsWed 8:00 — 132 commitsWed 9:00 — 119 commitsWed 10:00 — 138 commitsWed 11:00 — 148 commitsWed 12:00 — 149 commitsWed 13:00 — 187 commitsWed 14:00 — 236 commitsWed 15:00 — 240 commitsWed 16:00 — 210 commitsWed 17:00 — 217 commitsWed 18:00 — 212 commitsWed 19:00 — 169 commitsWed 20:00 — 116 commitsWed 21:00 — 124 commitsWed 22:00 — 94 commitsWed 23:00 — 81 commitsThu 0:00 — 85 commitsThu 1:00 — 51 commitsThu 2:00 — 22 commitsThu 3:00 — 32 commitsThu 4:00 — 43 commitsThu 5:00 — 35 commitsThu 6:00 — 36 commitsThu 7:00 — 105 commitsThu 8:00 — 181 commitsThu 9:00 — 120 commitsThu 10:00 — 201 commitsThu 11:00 — 134 commitsThu 12:00 — 170 commitsThu 13:00 — 216 commitsThu 14:00 — 221 commitsThu 15:00 — 191 commitsThu 16:00 — 157 commitsThu 17:00 — 196 commitsThu 18:00 — 210 commitsThu 19:00 — 141 commitsThu 20:00 — 109 commitsThu 21:00 — 110 commitsThu 22:00 — 82 commitsThu 23:00 — 129 commitsFri 0:00 — 58 commitsFri 1:00 — 45 commitsFri 2:00 — 23 commitsFri 3:00 — 19 commitsFri 4:00 — 30 commitsFri 5:00 — 9 commitsFri 6:00 — 37 commitsFri 7:00 — 79 commitsFri 8:00 — 116 commitsFri 9:00 — 120 commitsFri 10:00 — 133 commitsFri 11:00 — 133 commitsFri 12:00 — 122 commitsFri 13:00 — 154 commitsFri 14:00 — 195 commitsFri 15:00 — 173 commitsFri 16:00 — 124 commitsFri 17:00 — 136 commitsFri 18:00 — 180 commitsFri 19:00 — 123 commitsFri 20:00 — 86 commitsFri 21:00 — 69 commitsFri 22:00 — 70 commitsFri 23:00 — 92 commitsSat 0:00 — 66 commitsSat 1:00 — 48 commitsSat 2:00 — 29 commitsSat 3:00 — 23 commitsSat 4:00 — 9 commitsSat 5:00 — 26 commitsSat 6:00 — 36 commitsSat 7:00 — 47 commitsSat 8:00 — 134 commitsSat 9:00 — 153 commitsSat 10:00 — 134 commitsSat 11:00 — 148 commitsSat 12:00 — 187 commitsSat 13:00 — 141 commitsSat 14:00 — 163 commitsSat 15:00 — 167 commitsSat 16:00 — 189 commitsSat 17:00 — 170 commitsSat 18:00 — 125 commitsSat 19:00 — 111 commitsSat 20:00 — 70 commitsSat 21:00 — 122 commitsSat 22:00 — 86 commitsSat 23:00 — 52 commits
Commit volume by weekday and hour (UTC). Larger dots mean more commits.
DateListRankStars gained
Jul 3, 2026daily#25+9
Feb 20, 2026daily#25+108
Feb 19, 2026daily#15+154
Feb 18, 2026daily#16+181
Feb 17, 2026daily#21+143