How to program to an interface, not an implementation... While the principles of Object-oriented Programming (OOP) aren't necessarily complex, how to apply them properly can get confusing. Apex is designed to be an OOP Language, but the code a developer creates with it is not automatically object-oriented programming. Brooks Johnson, who transitioned into a flourishing software engineering career after his long service in the military, has valuable lessons to share on how to navigate the patterns of OOP.