Design higher-quality embedded software from concept through production. This book assumes basic C and microcontroller programming knowledge and is organized into three critical areas: Software Architecture and Design; Agile, DevOps, and Processes; and Development and Coding Skills. You’ll start with a basic introduction to embedded software architecture and the considerations for a successful design. The book then breaks down how to architect an RTOS-based application and explore common design patterns and building blocks. Next, you’ll review embedded software design processes such as TDD, CI/CD, modeling, and simulation that can be used to accelerate development. Finally, the book will examine how to select a microcontroller, write configurable code, coding strategies, techniques, and tools developers can’t live without. Embedded systems are typically designed using microcontrollers to build electronic systems with a dedicated function and real-time responses. Modern systems need to carefully balance a complex set of features, manage security, and even run machine learning inferences while maintaining reasonable costs, scalability, and robustness. By the end of this book, you will have a defined development process, understand modern software architecture, and be equipped to start building embedded systems. What You’ll Learn Understand what sound embedded system design is and how to employ it Explore modern development processes for quality systems Know where the bits hit the silicon: how to select a microcontroller Master techniques to write configurable, automated code Who This Book Is For Embedded software and hardware engineers, enthusiasts, or any stakeholders who would like to learn modern techniques for designing and building embedded systems.