Making Embedded Systems Price: 899 € Price: 899 €
Join Now for 899 €/seat Join Now for 899 €/seat
Geometric illustration at the border
Geometric illustration at the border

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.

Information on this page represents our intent for the following cohort and is subject to changes
Upcoming Cohort Pre-Sale
Cohort Name Class Period Registration Deadline
#3 Yellow Seahorses
Aug 20, 22 - Oct 22, 22 Sat - Aug 27, 22 - 4:00 PM UTC
  • Cohort Name
    Yellow Seahorses
  • Class Period
    Aug 20, 22 - Oct 22, 22
  • Registration Deadline
    sáb - ago 27, 22 - 4:00 PM UTC
Current Cohort
Cohort Name Class Period Registration Deadline
#2 Orange Stars
Mar 19, 22 - Jun 06, 22 Sat - Mar 26, 22 - 5:00 PM UTC
Class is closed to new registrations
  • Cohort Name
    Orange Stars
  • Class Period
    Mar 19, 22 - Jun 06, 22
  • Registration Deadline
    sáb - mar 26, 22 - 5:00 PM UTC
Class is closed to new registrations
Meet Your Peers
Ricardo
BOB
Mary
Kendall
Novor
David
Claire
Anderson
Sam
Michael
Jarek
Daniel
Ricardo
Constantin
Tomislav
Jayanthi
Jennie
Ken
Dylan
Huan
Juan
Unmeel
Misha
Anjali
Bartłomiej
Rosendo
Marten
sergio
Aaron
Joe
Kurtis
Tony
Maciej
Bryan
Silvia
Carrie
Rubab
Jesse
Eric
Ira
robbie
Aniruddh
Ohiosoje
Brandon
Justin
Jason
Emmanuel
Graeme
Leslie
Hayden
Sam
Vineet
Meet Your Peers
  • Hayden
    Software Developer
    Works at Everactive
    Hayden
  • Justin
    Works at Toast Inc.
    Justin
  • Dylan
    Dylan
  • Jarek
    Jarek
  • Ricardo
    Ricardo
  • Jayanthi
    Jayanthi
  • Joe
    Joe
  • Leslie
    Leslie
  • Eric
    Willing to learn
    Works at Inland Respite
    Eric
  • Huan
    Junior embedded engineer
    Huan
  • Vineet
    Works at Reflexion Medical
    Vineet
  • Ken
  • Maciej
    Maciej
  • robbie
  • Marten
    Creative Technologist
    Marten
  • Anjali
    Anjali
  • Misha
    Misha
  • Unmeel
  • Carrie
    Carrie
  • Silvia
    Silvia
  • Kendall
    Kendall
  • Aniruddh
    Aniruddh
  • Rosendo
    Rosendo
  • Jennie
    Jennie
  • David
    David
  • Jason
    IT Guy / Curious to a fault
    Works at District87
    Jason
  • Emmanuel
  • Tony
    Tony
  • Brandon
    Brandon
  • Novor
    Novor
  • sergio
    sergio
  • Anderson
    Anderson
  • Daniel
    Daniel
  • Graeme
    Graeme
  • Ricardo
    Ricardo
  • Tomislav
    Tomislav
  • Aaron
    Aaron
  • Juan
    Juan
  • Bryan
    Works at Aqua Metrology Systems
    Bryan
  • Sam
    Works at ¯\_(ツ)_/¯
    Sam
  • Jesse
    Jesse
  • Claire
    PM at Crowd Supply ★ Talks Chair at Open Hardware Summit
    Works at Crowd Supply
    Claire
  • Michael
    Michael
  • BOB
    BOB
  • Rubab
    Rubab
  • Kurtis
    Kurtis
  • Bartłomiej
    Bartłomiej
  • Mary
    Mary
  • Constantin
    Works at PwC Wirtschaftsprüfungsgesellschaft
    Constantin
  • Sam
    Sam
  • Ira
    Software team leader
    Works at novocure
    Ira
  • Ohiosoje
    Ohiosoje

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 on Saturdays

Async Sessions on Discord
~ 2 hours of self-paced material during the week
  • 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 weekend session
Illustration of people using Discord
Sync Sessions on Zoom
~ 2 hours of lectures and exercises on the weekend
  • Q&A with the instructor
  • Additional demos / examples of key topics
  • Group practice - students break out to work on an exercise
  • Group discussion
Sync sessions on Zoom

Syllabus

Week 1 - Introduction and System Architecture
  • 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
Week 2 - Getting your Hands on the Hardware
  • 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
Week 3 - Inputs, Outputs and Timers
  • 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
Week 4 - Managing the Flow of Activity
  • 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
Week 5 - Communicating with Peripherals
  • 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
Week 6 - Communicating with Peripherals
  • Describe how an inertial measurement unit (IMU) works at an intuitive level
  • Relate IMU results to a system orientation
Week 7 - Updating Code
  • 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
Week 8 - Doing More With Less
  • 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
Week 9 - Math and Optimizing Algorithms
  • 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
Week 10 - Power Consumption
  • 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

Final Project

Final Project Preview

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

Check out a few of our students' final projects
  • Photogate Speedometer
    Aaron Stafford
  • Flight Control System Adapter
    Peter Griffin
  • Spectral Speech Rate Analyzer
    Debra Ansell
  • Smart Micro Pump
    André Araújo

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.

Elecia White

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
Prerequisites
  • Programming in C or C++, intermediate or expert.

Your Instructors

Elecia White
Elecia White

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.

At a university course, you might learn to program or put together a microprocessor system to program in assembly. Having that sort of theory is great, but that isn't what I do as an embedded software engineer.
Career Highlights
  • 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
Relevant Publications in the Field
Making Embedded Systems: Design Patterns for Great Software
View More
185 ratings
Cobus Van Eeden

This is the best introductory book on embedded systems programming I have ever seen and I have seen a lot of them!

Mike B.

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!

TheGerb

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

  • 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.

    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.
  • How can I get my company to pay for my course?

    We can issue an invoice directly to your company. The steps we need you to take are:

    1. Sign up at Classpert and send us your username or the email you use to register on Classpert
    2. Provide us with the following company information: name, full address, email and tax ID

    Once we receive the payment confirmation, we’ll enroll you in the class

    How can I get my company to pay for my course? We can issue an invoice directly to your company. The steps we need you to take are: 1. Sign up at Classpert and send us your username or the email you use to register on Classpert 2. Provide us with the following company information: name, full address, email and tax ID Once we receive the payment confirmation, we'll enroll you in the class
  • Do I receive a certificate at the end of the course?

    To be eligible to earn a certificate, you need to complete the final project with a passing grade.

    Do I receive a certificate at the end of the course? To be eligible to earn a certificate, you need to complete the final project with a passing grade.
  • Is attending the live sessions required?

    All live sessions are recorded and made available to all students later, so attending them is not mandatory. However, we strongly encourage all students to attend live sessions whenever possible. This is the chance to get your questions directly answered by the instructor and network with other students during breakout sessions. If you do not attend the live session, you can still get your questions answered on our Discord server.

    Is attending the live sessions required? All live sessions are recorded and made available to all students later, so attending them is not mandatory. However, we strongly encourage all students to attend live sessions whenever possible. This is the chance to get your questions directly answered by the instructor and network with other students during breakout sessions. If you do not attend the live session, you can still get your questions answered on our Discord server.
  • 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

    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
  • Do I still get access to all 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.

    Do I still get access to all 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.
  • I work full time. Will this interfere with this course?

    The course is structured in such a way that knowledge is built in incremental steps until you’re able to demonstrate you’ve reached the course’s learning goals by turning in the final project and getting a passing grade. Homework and class activities are mostly peer-graded or self-graded so turning them in is not required. If you can’t find the time to complete those activities there will be no penalties. As long as you achieve the learning goals, you should be fine.

    I work full time. Will this interfere with this course? The course is structured in such a way that knowledge is built in incremental steps until you're able to demonstrate you've reached the course's learning goals by turning in the final project and getting a passing grade. Homework and class activities are mostly peer-graded or self-graded so turning them in is not required. If you can't find the time to complete those activities there will be no penalties. As long as you achieve the learning goals, you should be fine.
  • How do refunds work?

    If the course does not meet your expectations you can ask for a full refund before the end of week 1. Please, read the text below to check conditions:

    1. Students who are absent from class will not receive a refund. While we expect students to participate in the class according to the schedule outlined in the syllabus - including completing the weekly assignments (readings, videos, quizzes, and exercises) and attending scheduled class sessions - students who cannot attend will still be able to view recordings of class sessions asynchronously, and thus can fully participate in the course.
    2. If a student has a personal situation arise that prevents them from continuing to participate in the course, the student must immediately notify the Classpert course manager. In such a case, Classpert will allow the student to continue in a future cohort, beginning the course again at week one. If a student does not proactively notify Classpert’s course manager of a scheduling conflict, the student will be considered an absent participant in the course, and will not be eligible for a deferment.
    3. If the lead instructor(s) can’t continue the course for any reason, we will offer admission to a future cohort. If the lead instructor is not able to offer future cohorts, we will offer a refund according to the schedule outlined below.
    4. If a student chooses to withdraw from the course, Classpert will refund whatever portion of the tuition is eligible, given the proration schedule outlined below. Students who withdraw from the course will immediately lose access to the course materials.

    Students who withdraw from the course will immediately lose access to the course materials. If a student satisfies all conditions above for terminating enrollment in a course, their tuition will be refunded in an amount based on the number of weeks that have concluded, minus the list price of the shipped class materials.

    Weeks will be considered concluded when the lecture for that week ends. For example, week 1 will conclude when the lecture for week 1 ends.

    Tuition Refund Proration Schedule

    1. Less than 1 week of the course (from the kickoff class until the conclusion of the week 1 lecture): 100% tuition refund
    2. After 1 week of the course (after conclusion of week 1 lecture): 80% tuition refunded
    3. After 2 weeks of the course (after the conclusion of the week 2 lecture): 60% tuition refunded
    4. After 3 weeks of the course (after the conclusion of the week 3 lecture): 40% tuition refunded
    5. After 4 weeks of the course (after the conclusion of the week 4 lecture): 20% tuition refunded After 5 of the course weeks have concluded, no refunds will be offered
    How do refunds work? If the course does not meet your expectations you can ask for a full refund before the end of week 1. Please, read the text below to check conditions: <ol type="a"> <li>Students who are absent from class will not receive a refund. While we expect students to participate in the class according to the schedule outlined in the syllabus - including completing the weekly assignments (readings, videos, quizzes, and exercises) and attending scheduled class sessions - students who cannot attend will still be able to view recordings of class sessions asynchronously, and thus can fully participate in the course.</li> <li>If a student has a personal situation arise that prevents them from continuing to participate in the course, the student must immediately notify the Classpert course manager. In such a case, Classpert will allow the student to continue in a future cohort, beginning the course again at week one. If a student does not proactively notify Classpert’s course manager of a scheduling conflict, the student will be considered an absent participant in the course, and will not be eligible for a deferment.</li> <li>If the lead instructor(s) can’t continue the course for any reason, we will offer admission to a future cohort. If the lead instructor is not able to offer future cohorts, we will offer a refund according to the schedule outlined below.</li> <li>If a student chooses to withdraw from the course, Classpert will refund whatever portion of the tuition is eligible, given the proration schedule outlined below. Students who withdraw from the course will immediately lose access to the course materials.</li> </ol> Students who withdraw from the course will immediately lose access to the course materials. If a student satisfies all conditions above for terminating enrollment in a course, their tuition will be refunded in an amount based on the number of weeks that have concluded, minus the list price of the shipped class materials. Weeks will be considered concluded when the lecture for that week ends. For example, week 1 will conclude when the lecture for week 1 ends. Tuition Refund Proration Schedule <ol type="a"> <li>Less than 1 week of the course (from the kickoff class until the conclusion of the week 1 lecture): 100% tuition refund</li> <li>After 1 week of the course (after conclusion of week 1 lecture): 80% tuition refunded</li> <li>After 2 weeks of the course (after the conclusion of the week 2 lecture): 60% tuition refunded</li> <li>After 3 weeks of the course (after the conclusion of the week 3 lecture): 40% tuition refunded</li> <li>After 4 weeks of the course (after the conclusion of the week 4 lecture): 20% tuition refunded After 5 of the course weeks have concluded, no refunds will be offered</li> </ol>
  • What is the workload for this class?

    With the reading, homework, and pre-recorded classes, you should expect to spend about 4-6 hours per week + approx. 1.5 hours of live class.

    What is the workload for this class? With the reading, homework, and pre-recorded classes, you should expect to spend about 4-6 hours per week + approx. 1.5 hours of live class.
  • Do I need to do anything to get ready for the course?

    No, all class instructions will be given by the instructor to the classroom during the kickoff session.

    Do I need to do anything to get ready for the course? No, all class instructions will be given by the instructor to the classroom during the kickoff session.