Code Like a Ninja Session 5 - Interface Segregation Principle
Code Like a Ninja Session 8 - Structural Design Patterns
Code Like a Ninja Session 7 - Creational Design Patterns
Code Like a Ninja Session 4 - Liskov Substitution Principle
Code like a ninja session 3 open-closed principle
Code like a ninja session 2 single responsible principle