Test Driven Development for Embedded C by James Grenning is a book I heard about through a friend of mine, as well as, through the embedded.fm embedded systems podcast. It is a well thought out introduction to TDD in an environment where there is a strong reluctance to adopt new techniques, and improve code readability, provability and test-ability. Grenning does a great job at making the sale that TDD is ultimately worth it and then executes through examples how to test code from scratch, how to add test harnessing to legacy code, and ultimately how to design code so that it can be tested. To developers who don’t work with C for an embedded platform you might thing this is old hat; however, for me this book changed the way I think not only of writing C for embedded systems, but all code. Unit testing has become a standard part of my vocabulary and what I value in code.