Great software engineers make good use of design patterns, are diligent in code refactoring, write unit tests, and have a religious pursuit of simplicity. In addition to these qualities, outstanding software engineers should also be well-versed in ten concepts that transcend programming languages and design patterns. Software engineers should understand these principles from a broader perspective.