Typing at scale: statically type-checking a large codebase
summary
Aiven moves a 2015 monorepo with about 200 developers from untyped Python toward static checking using mypy and a progressive-to-strict per-file scheme, then a generated inline-ignore script that lets the team flip to mostly-strict quickly. They hit a moving-target of mypy options and bugs, found any and deserialization break static guarantees (one production incident), augment with runtime guards/Pydantic, and conclude the approach works but needs tooling, conventions, and ongoing maintenance.
AI-written summary · about
chapters (7)
- 0:00Introduction to static typing
- 2:31Starting type annotation effort
- 7:28Progressive typing challenges
- 12:30Runtime vs compile-time checks
- 14:14Solving type-checking problems
- 22:09Would we do it again?
- 22:59Q&A session
related talks
38mMigrating existing codebases to using type annotations
03h 38mPython Types for Fun and Profit
30mClearer Code at Scale: Static Types at Zulip and Dropbox
28mMind the gap! Why static typing requires more than just adding annotations
27mGradual Typing in Practice
30mStatic type checking with mypy
31mStatic Type Analysis for Robust Data Products
28mGradual Typing in Python
