
Making Embedded Systems
Elecia is the author of the bestselling book: Making Embedded Systems: Design Patterns for Great Software and host of the popular Embedded podcast. She is also a principal embedded software engineer at Logical Elegance, Inc. Elecia will enable you to confidently work as an embedded software engineer.
Making Embedded Systems
A 10-week program with live classes, real-life projects, and teamwork
If you want to pursue a career as an embedded systems engineer, this course is for you.
After completing these lessons, you will be able to build production systems and work professionally as an embedded systems engineer. You’ll even be ready for the interviews!
Week by week, you’ll learn the foundations of embedded systems programming, and will walk away with the ability to design and build products of your own. You’ll gain practical knowledge and insights to accelerate your career as an embedded systems engineer.
Cohort Name | Class Period | Registration Deadline |
---|---|---|
|
Aug 27, 22 - Nov 05, 22 | Saturday, Sep 03 - 2022 at 04:00 PM UTC |
-
Cohort Name
#3 Yellow Seahorses
-
Class PeriodAug 27, 22 - Nov 05, 22
-
Registration DeadlineSaturday, Sep 03 - 2022 at 04:00 PM UTC
-
FriedemannFriedemann
-
Austin
-
DariusDarius
-
RenéRené
-
ClaudioAspiring Software EngineerClaudio
-
Sarah
-
CameronSoftware engineer with lots of unfinished side-projectsCameron
-
René
-
SandrineSandrine
-
AldoAldo
-
KapiKapi
-
CanCan
-
TylerTyler
-
BenBen
-
AissataAissata
-
SYED
-
AryAry
-
KaylaKayla
-
ColleenColleen
-
Sam
-
PuruPPuruP
-
jnanendrajnanendra
-
BeeBee
-
GeorgeGeorge
-
Davi
-
JasonJason
-
SREEDHARAn Electrical hobbiest, Embedded ProgrammerWorks at Yogashri Heavy Engineering Pvt Ltd, Mecify LabsSREEDHAR
-
Dr
-
JohnJohn
-
ChrisChris
-
RAMARIORAMARIO
-
JamesJames
-
ErikErik
-
JeffJeff
-
ElizabethElizabeth
-
LisiLisi
-
CharlieCharlie
-
Eric
-
Paulo
-
NikolasNikolas
Cohort Name | Class Period | Registration Deadline |
---|---|---|
|
Mar 19, 22 - Jun 06, 22 | Saturday, Mar 26 - 2022 at 05:00 PM UTC |
-
Cohort Name
#2 Orange Stars
-
Class PeriodMar 19, 22 - Jun 06, 22
-
Registration DeadlineSaturday, Mar 26 - 2022 at 05:00 PM UTC
-
TomislavTomislav
-
JarekJarek
-
AaronAaron
-
VineetWorks at Reflexion MedicalVineet
-
LeslieLeslie
-
RicardoRicardo
-
Hayden
-
Sam
-
DanielDaniel
-
TonyTony
-
Marten
-
KurtisKurtis
-
CarrieCarrie
-
DylanDylan
-
JasonIT Guy / Curious to a faultWorks at District87Jason
-
DavidDavid
-
AndersonAnderson
-
RubabRubab
-
Ken
-
Claire
-
MaciejMaciej
-
AniruddhAniruddh
-
robbie
-
BOBBOB
-
OhiosojeOhiosoje
-
JoeJoe
-
MishaMisha
-
Ira
-
MichaelMichael
-
RicardoRicardo
-
HuanJunior embedded engineerHuan
-
sergiosergio
-
Constantin
-
Emmanuel
-
Unmeel
-
JuanJuan
-
KendallKendall
-
Eric
-
NovorNovor
-
AnjaliAnjali
-
JesseJesse
-
JustinWorks at Toast Inc.Justin
-
GraemeGraeme
-
SilviaSilvia
-
BrandonBrandon
-
BryanWorks at Aqua Metrology SystemsBryan
-
JennieJennie
-
JayanthiJayanthi
-
SamSam
Program Structure
Typical week in the cohort
Communication and networking are core components of the ClasspertX course experience. In this course, you will be part of a global learning community. In order to accommodate all participants, we have designed much of the course experience to take place asynchronously, with a synchronous class session that occurs weekly.
-
Reading from the book
Includes a free copy of the book
This course is centered around Making Embedded Systems: Design Patterns for Great Software which will be used as a supplementary material for the classes
- Videos
- Quizzes
- Exercises
- Students will be prompted to submit questions during the week, and the instructor should choose questions to answer for students during the weekly session
Sync Sessions on Zoom- Q&A with the instructor
- Additional demos / examples of key topics
- Group practice - students break out to work on an exercise
- Group discussion
Syllabus
- Identify what makes an embedded system
- Describe why embedded software is different from other types of software
- Explain the trajectory of the course
- Create system diagrams as part of system and software design
- Architect a system, focusing on modularity and information hiding
- Decompose an existing system to better follow the flow of code
- Identify the major portions of a digital circuit schematics
- Analyze schematics to sketch corresponding draw block diagrams
- Apply datasheet information
- Evaluate processors and development boards based on varying criteria
- Recognize the different applications of processor documentation
- Negotiate problem resolution in an interdisciplinary team
- Explain the need for testability in hardware and software
- Identify and implement methods to achieve testability in hardware and software
- Implement a basic embedded system (blinking light)
- Review, decompose and adapt existing hardware abstraction layers (HAL) code
- Distinguish components of HAL as different design patterns
- Understand and solve timer equations
- Deconstruct and document state machines for existing systems
- Construct and document a new state machine
- Explain how interrupts and event handlers work with state machines
- Describe a small scheduler, define basic RTOS terms
- Group peripherals by type and communication method
- Compare and contrast different peripheral communication methods: ease of use, speed, resilience to noise, and so on
- Prepare a buffering system to work with a data-driven system
- Compute system data throughput requirements
- Describe how an inertial measurement unit (IMU) works at an intuitive level
- Relate IMU results to a system orientation
- Analyze how a system's bootloader works
- Critique firmware update options, identifying potential failure points
- Describe considerations for a large IoT or distributed system deployments
- Examine code for common security flaws
- Recognize the main components of a memory map
- Assess resource utilization on a microprocessor
- Identify and solve problems with resource limitations, memory errors, and firmware update
- Describe the differences between precision and accuracy
- Evaluate algorithm efficiency with respect to different resource limitations
- Measure and compare algorithm efficiency
- Recognize that the first implementation may only be the most obvious, not the best
- Measure and calculate power consumption in different circumstances
- Articulate how coding choices affect power consumption
- Evaluate which tools will be useful to reduce power consumption under different conditions

Project
Design and build a system that solves a problem you find interesting
Your final project is to design and build a system that solves a problem you find interesting. The final project is intended to bring together the course topics in a form that can be shared with prospective employers

Dodeca Timer
The idea is to use a Dodecahedron to create a physical way to track time spent during the day - In other words, tracking tasks. Each side of the dodecahedron can be assigned a task such as ‘Email’, ‘Coding’, ‘Lunch’, ’meeting’ etc. As you start or stop a task you simply set the Dodecahedron with the task you are about to do facing up.

palLED
The palLED is a friendly kit that helps you envision color palettes on addressable RGB LEDs, using RYB color wheel theory. The palLED lets you see how color schemes created using RYB theory look on RGB LEDs, and also provides you with the RGB settings for each LED.

Calor
Calor is a small re-usable device you can scatter across an area to measure how the temperature changes over time and space. Finally, high-density sensor networks are affordable, quick to deploy, and visualizing beautiful animated heatmaps have never been easier.

Serial Snooper
This project aims to make debugging embedded software easier, by reducing the number of steps required to capture serial logs from a device-under-test. Introducing the Serial Snooper (SS): a lightweight, portable and easy-to-use UART data logger.
What you'll learn
- Build production embedded systems
- Professional embedded systems engineering
- Create a system architecture from an existing system
- Create a system architecture for a new system
- Negotiate design trade-offs with other parts of an interdisciplinary team
- Devise tests as part of the design process
- Improve your interview skills

Who this course is for
Embedded systems are purpose built for their application. That usually means they are resource constrained: the devices have the minimum features needed to do the job. They still need to be mission critical, reliable, easy to use, cheap, and often low power.

Who this course is for
Target Audience- Professional electrical engineers who are getting into embedded software and want to know more about good software design
- Professional software engineers tasked with bringing up hardware who need to know the differences between embedded software and normal software as well as how to use the tools they aren’t accustomed to
- Software engineers, hardware engineers, IoT professionals, and programmers who want to formalize the bits and pieces of knowledge they have gained by already working in embedded systems
- New college graduates and junior engineers who want to go beyond tactical programming into strategic design and implementation
- Managers who are new to embedded software development and need a big picture view
- Programming in C or C++, intermediate or expert.
Your Instructors
Elecia White is the host of the Embedded podcast, author of O’Reilly’s Making Embedded Systems, and principal embedded software engineer at Logical Elegance. Elecia has worked on DNA scanners, inertial measurement units for airplanes and race cars, toys for preschoolers, self-driving cars for off-roading, smart rocks for undersea rivers, and assorted other medical and consumer devices.
- Senior Embedded Systems Engineer at Logical Elegance, Inc.
- Author of Making Embedded Systems (O'Reilly Media)
- Shipped dozens of products in varied industries including aerospace, medical, consumer, and automotive. Some have sold tens of millions of units; one product that cost $250k
- Podcast host, blog editor, and author at Embedded.fm
- Published patents related to medical equipment, municipal infrastructure, and education; peer-reviewed articles concerning signal processing, inertial systems, feeding mice, oil quality sensing, and intelligent tutoring systems
- 🏎️ Travelled 180 mph in a racecar while testing hardware
- 🧝♀️ Santa's Elf at LeapFrog, focused on making toys
- 🏜 Melted my hiking boots in the Mojave desert while testing hardware

This is the best introductory book on embedded systems programming I have ever seen and I have seen a lot of them!
Excellent book on the subject! It’s well-written, has very useful information, and if you are job hunting in this area, even has interview questions…and descriptions of how the author evaluates responses to them, at the end of each chapter. Very interesting view into the mind of a technical manager there!
A different approach from the usual run of hobby-directed microcontroller books for Arduino, Raspberry Pi etc. The writing is clear and engaging for software people engaging with writing code for the microcontroller domain for the first time.
Frequently Asked Questions
-
Can I get my employer to pay for the program?
An investment in knowledge always pays the best return for your company. It’s a tiny investment compared to what you could potentially bring in terms of innovation to your workplace.
Many companies offer reimbursement for courses related to your job. Ask your employer about tuition benefits. Even if there is no specific tuition assistance, many companies allocate money toward professional development. Managers may have money earmarked for industry conferences and many have not considered applying it toward continuing education.
Approach asking for tuition assistance like you would a formal negotiation. Go into the discussion with clearly outlined and rehearsed messages about what you hope to gain and emphasize how it will benefit your boss and organization.
-
What are the dynamics of this program?
Our programs follow the Flipped Learning Methodology, which involves both self-paced study and live instructor-led sessions. During the week, you’ll be expected to engage in activities like watching lectures, completing readings, and working on exercises and your project. The week ends with a Zoom session where the instructional staff will review what has been learned, organize class discussions, answer student questions, and give feedback on your project.
-
Is attending the live sessions required?
Attending live sessions is not required, but is highly recommended. This is the chance to network with your peers and the instructional team and get your questions directly answered by the instructor.
If you can’t attend a live session, you can watch recordings later or get your questions answered on our community channels.
-
What is the time commitment for this course?
This course requires 6-8 hours/week of work. Self-paced activities such as homework assignments, readings, and watching video lectures exist to help you build up knowledge until you’re able to demonstrate, through your project, that you’ve achieved the learning outcomes of the program. Although important, homework assignments won’t be graded by the instructional team. The only gradable unit in this program will be your project, which is a prerequisite for certificate emission
-
How do refunds work?
If the course does not meet your expectations, you can ask for a full refund before the beginning of week 3. No questions asked!
-
Do I retain access to all class materials after the class is over?
Yes, you get lifetime access to all class materials and the community after the class is over. Additionally, new content that is added to future cohorts will be made available to yours too.
-
How are certificates issued? Will I be evaluated?
In order to earn a certificate, you’ll need to submit a project and get a passing grade. The instructional team will provide comprehensive feedback on your project, highlighting the strong points, areas for improvement, and helpful tips on how it could be successful outside of the class.
-
Will this course run again in the future?
Cohort-style classes are to some extent very similar to traditional classroom environments which makes them largely dependent on the instructor’s schedule. While we always hope there’ll be a next cohort, there’s no guarantee that the instructor will be available for the next one. If you’re busy right now, but really interested in taking this course, we advise you to sign up now and ask for a refund if you can’t commit to the program after week 3.
-
What determines the price of the course?
Our programs require significant time from a number of professionals including mentors, the instructor, and organization staff. It is not a canned lecture course but an educational opportunity tailored to your needs and interests.
-
What compilers and IDEs do you use in the course?
We use Cortex-M processors and encourage the use of the STM32 CubeMX compiler. That said, any compiler and IDE for those processors can work, including PSoC Creator, IAR, VSCode with GCC, Platformio, and the RPi Pico SDK. While you’ll choose a specific IDE and compiler, you will get exposed to others from your classmates.
-
Do I need a board to take this class?
You can use emulators to take this class, but we recommend against it. You can use any STM-32 compatible board but in addition to the book, Classpert ships boards to all students*.
*Restrictions may apply to some countries
Ready to level-up?
Enroll now in one of our programs
and join us for a truly immersive learning experience

Create a Game Design Document and Pitch the Concept to Industry Experts


Flint Dille, John Zuur PlattenWriters of Jurassic World, Diablo, Transformers and more

Build a Programming Language from the Ground-Up


Design and Build a System that Solves a Problem You Find Interesting


Develop and Manage a Successful AI Project for your Organization
