SOLID design principles and common design patterns in python.