CEC – Embedded Software Design Techniques
How embedded software is designed and built has evolved over the last several years. Embedded systems are no longer simple disconnected systems but powerful microcontroller-driven devices balancing connectivity, machine learning, and real-time control. This course will explore how to design and build modern embedded systems that use microcontrollers. Registration and Playback are located here (May require login to access)
June 20 – Day 1 – Software Architecture 101
Embedded designers today have a wide range of development environments and architectures available to them. In this session, we will explore the software architectural patterns available to designers today. Attendees will walk away understanding the differences between technical layers, domains, and micro-services.
June 21 – Day 2 – Designing RTOS-based Applications
Many real-time systems rely on an RTOS to manage the timing and low-level features in the microcontroller system. This session will explore how to architect an embedded application using an RTOS. Attendees will learn how to develop and verify their architecture.
June 22 – Day 3 – Architecture Verification Techniques
It’s amazing how quickly a well-architected system can descend into chaos! In this session, we will explore how to analyze our embedded software as we develop it to ensure that we maintain high coherence and minimize coupling. Attendees will walk away with new ideas on how to keep their architecture clean.
June 23 – Day 4 – Designing Quality into Embedded Systems
Quality cannot be added to a system at the end of the development cycle–it must be maintained at every stage. In this session, we will explore what it takes to build a quality embedded system. We will discuss how to analyze embedded systems for quality using complexity, cycle analysis, CI/CD, and more. Attendees will walk away with the knowledge of what processes may work for them to improve their system quality and decrease time to market.
June 24 – Day 5 – Software Configuration Management Techniques
The bane of many projects is how to successfully manage software configurations. Many code bases are used across multiple product lines and SKUs. Managing which features are included and which are excluded can result in complex spaghetti code. In this session, we will explore several techniques for managing configuration of a product that will simplify feature selection and minimize the opportunity for mistakes.
Course Resources
Jacob’s General Embedded System Resources:
- Sign-Up for the Embedded Bytes Newsletter here
- Developing Reusable Firmware – A Practical Guide to API’s, HAL’s and Drivers here
- MicroPython Projects Book here
- Jacob’s YouTube Channel – here
Course Resources:
- None at this time
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.