course introduces principles and patterns for designing scalable, maintainable software systems.