Casey Muratori recently gave a great talk during a Q&A talking about the way he uses C to achieve some of the same things people typically think of as object oriented (starts around 19:39)[0]. It doesn’t cover everything that makes up OO design but I like it because highlights how C is powerful and capable of things like polymorphism in a cleaner way than C++.