Design Principles Learn, read about & practice software design principles - guidelines for developers on creating robust, maintainable & extensible software systems. Practice Problems