Patterns of Thinking in Software Development

 Printable PDF

Metaphors and analogies can be valuable tools for learning new software concepts and tapping subject matter expertise during embedded software development.

How to Code a State Machine in C or C++

 Printable PDF

A state machine is any object that behaves different based on its history and current inputs.  Many embedded systems consist of a collection of state machines at various levels of the electronics or software.

How to Have Polymorphism Without a Heap

 Printable PDF

Rethinking basic programming techniques can avoid many of the problems that heap-based memory management poses for embedded real-time system designs.