This document provides an overview of the SOLID principles of object-oriented design: Single Responsibility, Open-Closed, Liskov Substitution, Interface Segregation, and Dependency Inversion. Each principle is defined in 1-2 sentences. Examples are given to illustrate correct and incorrect implementations related to the Liskov Substitution and Interface Segregation principles. The conclusion states that following these five SOLID principles results in code that is reusable, maintainable, scalable, and testable. References for further reading on SOLID are also included.