I gave a presentation at Unity's Unite 2017 Austin conference. This is actually the first well recorded presentation I gave. (Everytime I presented in the past, something would fail)
"... it was fantastic. The examples and level of depth are probably one of my favorites to date for SOLID. I think it was highly accessible and I've got some of the interns at the Unity Brighton office watching this feverishly. Thanks Dan!" - Markus Dugdale
Even if you have no interest in Unity, the SOLID aspects of this are a great for an introduction. I spent a long time trying to come up with a way to explain it in an easier way. Complex explanations that only make sense if you already understand it seem to be common place. Check out Wikipedia's opening statement on "L" (Liskov's Substitution Principle):
"... a principle in object-oriented programming stating that, in a computer program, if S is a subtype of T, then objects of type T may be replaced with objects of type S (i.e. an object of type T may be substituted with any object of a subtype S) without altering any of the desirable properties of T (correctness, task performed, etc.)"
Then I get into a Dependency Injection Framework and Unity Unit Testing from within Visual Studio, as can be found here.