2025-07-16 –, North Hall
Once upon a type in Pythonland, we would say:
If it looks like a duck, swims like a duck, and quacks like a duck, then it probably is a duck."
Then the type-checking team started scoring multiple goals.
Is type-checking useful in Python? What about existing codebases? Recommendations and pitfalls.
In this talk, we'll take a look at:
- why should you typecheck your code? what are the benefits and drawbacks?
- how can you do that without stopping development, but without chasing an ever-changing target?
- what are the pitfalls from type checking - can it provide a false sense of security?
- How to interact with third party libraries?
- Is static type-checking enough, or do we need to runtime check as well?
- Is the type checker always right?
This is a case study about how it was done (and is still being done) on a real, large production codebase at Aiven. This is not a theoretical talk - I'll try explaining what are the major pitfalls, what problems were solved and what problems were introduced by type checking.
And I'll finally answer The Big Question: would you do that again?
Intermediate
I’m an enthusiastic software and technology expert with a soft spot for agile and lean principles.
Part of the Pycon Italy founding team in 2007, and currently working on distributed databases at Aiven.
Programmer, manager, architect, bike lover, dad, husband, and probably something more. I use to say that I'm a full stack backend expert - let's discuss security, machine learning, infrastructure as code, anything that is not ui-related, please!