This book will teach you how to design higher-quality embedded software from concept through production.

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. 

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. 

Embedded System Design starts with a basic introduction to embedded software architecture and the considerations for a successful design. We then break down how to architect an RTOS-based application and explore common design patterns and building blocks. Next, we discuss embedded software design processes such as TDD, CI/CD, modeling, and simulation that can be used to accelerate development. Finally, we will discuss how to select a microcontroller, write configurable code, coding strategies, techniques, and tools developers can’t live without.


This book is organized into three critical areas:

  • Software Architecture and Design 
  • Agile, DevOps, and Processes
  • Development and Coding Skills

You will:

  • Learn how to design and build embedded systems in a practical manner
  • 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