This session will dig into the details of writing embedded software. The fundamentals will be discussed and include how to minimize complexity and anticipate change. Constructing for verification and design patterns will be explored. Techniques for writing the software will be covered, including design for reuse, modularity, and quality.