Book: Embedded Software Design
Embedded Software Design:
Embedded Software Design will teach you how to design higher-quality embedded software from concept through production. Embedded systems are typically designed using microcontrollers to build electronic systems with a dedicated function and real-time responses. Modern systems must carefully balance a complex set of features, manage security, and even run machine learning inferences while maintaining reasonable costs, scalability, and robustness. This book is organized into three critical areas:
- Software Architecture and Design
- Agile, DevOps, and Processes
- Development and Coding Skills

Embedded System Design starts with a basic introduction to embedded software architecture and the considerations for a successful design. We then explain 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. 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.
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
Embedded Software Design Chapter Index:
Chapter 0 – Successful Delivery
Part 1 – Embedded Software Architecture and Design
Chapter 1 – Embedded Software Design Philosophy
Chapter 2 – Embedded Software Architecture Design
Chapter 3 – Secure Application Design
Chapter 4 – RTOS Application Design
Chapter 5 – Design Patterns
Part 2 – Agile, DevOps, and Processes
Chapter 6 – Software Quality, Metrics, and Processes
Chapter 7 – Embedded DevOps
Chapter 8 – Testing, Verification, and Test-Driven Development
Chapter 9 – Application Modeling, Simulation, and Deployment
Chapter 10 – Jump Starting Software Development to Minimize Defects
Part 3 – Development and Coding Skills
Chapter 11 – Selecting Microcontrollers
Chapter 12 – Interfaces, Contracts, and Assertions
Chapter 13 – Configurable Firmware Techniques
Chapter 14 – Comms, Command Processing, and Telemetry Techniques
Chapter 15 – The Right Tools for the Job
Part 4 – Next Steps
Chapter 16 – Next Steps
Appendix A – Security Terminology Definitions
Appendix B – 12 Agile Software Principles
Appendix C – Hands-On – CI/CD using Gitlab
Appendix D – Hands-on TDD
Release Date: October 21, 2022
Struggling to keep your development skills up to date or facing outdated processes that slow down your team, raise costs, and impact product quality?
Here are 4 ways I can help you:
- Embedded Software Academy: Enhance your skills, streamline your processes, and elevate your architecture. Join my academy for on-demand, hands-on workshops and cutting-edge development resources designed to transform your career and keep you ahead of the curve.
- Consulting Services: Get personalized, expert guidance to streamline your development processes, boost efficiency, and achieve your project goals faster. Partner with us to unlock your team's full potential and drive innovation, ensuring your projects success.
- Team Training and Development: Empower your team with the latest best practices in embedded software. Our expert-led training sessions will equip your team with the skills and knowledge to excel, innovate, and drive your projects to success.
- Customized Design Solutions: Get design and development assistance to enhance efficiency, ensure robust testing, and streamline your development pipeline, driving your projects success.
Take action today to upgrade your skills, optimize your team, and achieve success.
Just placed my order… Looking forward to reading and applying!
Thank you,
I’ll check it out when available. It would be nice to have a couple of sentences to point out how it’s different from “Reusable Firmware Development”.
Also, this doesn’t really have anything to do with you, but I’m not a fan of APress moving to “SpringerLink.”.
Reusable Firmware Development focused in on low-level code reuse. How you design a HAL and API’s. Examples of how to do so with GPIO, SPI, and other drivers.
Embedded Software Design looks at three important aspects of software design:
1) Software Architecture and Design
2) Agile, DevOps, and Processes
3) Development and Coding Skills
There is very little to no repeat in concepts between the two books.