Current software development efforts are typically built on top of complex libraries that encapsulate many details. In these situations, attention to core design principles often gets lost, with the focus moving towards just getting the pieces to work together. There is significant evidence that many of today’s developers are not even aware of core principles that have had a major influence in the creation of effective and robust systems. Even developers who once regularly considered such elements now only have a dim memory of them. As a result, many systems currently being developed are experiencing a category of problems that were largely addressed many years ago. This talk will review a number of items including the set known as SOLID [originated by “Uncle Bob” Martin nearly 15 years ago) along with items that originated with Object Oriented Design. Common problems in today’s software development will then be correlated with the relevant underlying principle(s). By bringing these principles to the forefront we are able to demonstrate and correlate how a lack of attention to the foundational principals relates to common defects. NOTE: All code examples will be in C#, but may be applied to many languages/platforms/environments.