One thing that I really don't get: why use a dynamic language if you use type hints anyway? Seems like a wasted optimization opportunity.
Of course unless you really, really don't need performance. But I guess a mint needs performance to handle many customers?