David Seddon works in London at Kraken Tech, the technology tentacle of Octopus Energy. There, he works on a very large Django monolith consisting of tens of thousands of Python modules.
He loves thinking about and teaching software design, in particular domain modelling and application architecture.
He is the creator of Import Linter, an open-source tool to check your Python project is following a set of architectural rules you define.
He blogs at https://seddonym.me.
What if you don't want a Cat to be an Animal? What is the Liskov Substitution Principle? And what on earth is contravariance?
Discover the answers to these questions and more, as we explore the foundations of generic types in Python. And by the end, you might even understand the weirder errors that Mypy sometimes throws your way.