Software Architecture: Learn how to create modular, maintainable and scalable software by mastering SOLID principles