Making Embedded Systems Price: $899 Price: $899
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.

Watch trailer
Join the waitlist and get notified about the next cohort
Watch Trailer
Join the waitlist and get notified about the next cohort

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.

Join the waitlist and get notified about the next cohort
Current Cohort
Cohort Name Class Period Registration Deadline
#3 Yellow Seahorses
Aug 27, 22 - Oct 29, 22 Sat - Sep 03, 22 - 4:00 PM UTC
Class is closed to new registrations
  • Cohort Name
    Yellow Seahorses
  • Class Period
    Aug 27, 22 - Oct 29, 22
  • Registration Deadline
    Sat - Sep 03, 22 - 4:00 PM UTC
Class is closed to new registrations
Meet Your Peers
SREEDHAR
Aldo
Cameron
Darius
SYED
George
Bee
Kapi
James
Lisi
Eric
Tyler
Sam
Nikolas
John
Paulo
Elizabeth
Jason
Charlie
Colleen
Aissata
RAMARIO
Sandrine
Davi
jnanendra
René
Friedemann
Can
Claudio
Sarah
Ben
Jeff
Austin
PuruP
Kayla
Chris
Ary
Erik
Dr
René
Meet Your Peers
  • Colleen
    Colleen
  • René
    René
  • Claudio
    Aspiring Software Engineer
    Claudio
  • Friedemann
    Friedemann
  • Jason
    Jason
  • Austin
    Austin
  • James
    James
  • PuruP
    PuruP
  • Cameron
    Software engineer with lots of unfinished side-projects
    Cameron
  • SREEDHAR
    An Electrical hobbiest, Embedded Programmer
    Works at Yogashri Heavy Engineering Pvt Ltd, Mecify Labs
    SREEDHAR
  • Tyler
    Tyler
  • John
    John
  • Ary
    Ary
  • Dr
    I design FPGA and ASIC's, Embedded and DSP systems
    Works at Director for RapiDesignIT Limited
    Dr
  • Nikolas
    Nikolas
  • SYED
  • Lisi
    Lisi
  • Jeff
    Jeff
  • RAMARIO
    RAMARIO
  • Davi
    Works at ZPE Systems
    Davi
  • Paulo
    Paulo
  • Kayla
    Kayla
  • Bee
    Bee
  • Kapi
    Kapi
  • jnanendra
    jnanendra
  • Charlie
    Charlie
  • Aldo
    Aldo
  • Ben
    Ben
  • Elizabeth
    Elizabeth
  • Eric
    Embedded Electrical Engineer
    Works at GridPoint
    Eric
  • Can
    Can
  • George
    George
  • Darius
    Darius
  • Chris
    Chris
  • Aissata
    Aissata
  • Sarah
    Sarah
  • Sam
    Sam
  • René
    Works at Facultad Politecnica UNE
    René
  • Erik
    Erik
  • Sandrine
    Sandrine
Previous 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
    Sat - Mar 26, 22 - 5:00 PM UTC
Class is closed to new registrations
Meet Your Peers
Daniel
Constantin
Tomislav
Huan
Graeme
David
Vineet
Rubab
Bryan
Misha
Hayden
Emmanuel
Tony
Dylan
Joe
Justin
Jennie
robbie
Unmeel
BOB
Juan
Kurtis
Leslie
Claire
Jarek
Ira
Ohiosoje
Aaron
Carrie
Ricardo
Anjali
Anderson
Novor
Brandon
Marten
Ken
Silvia
Kendall
Jayanthi
Eric
Jason
Jesse
Maciej
Sam
Ricardo
Michael
Aniruddh
Sam
sergio
Meet Your Peers
  • Huan
    Junior embedded engineer
    Huan
  • Graeme
    Graeme
  • Jason
    IT Guy / Curious to a fault
    Works at District87
    Jason
  • Jennie
    Jennie
  • Vineet
    Works at Reflexion Medical
    Vineet
  • Unmeel
  • Ken
  • Anderson
    Anderson
  • Ohiosoje
    Ohiosoje
  • Dylan
    Dylan
  • Carrie
    Carrie
  • Jayanthi
    Jayanthi
  • Ricardo
    Ricardo
  • Sam
    Sam
  • Eric
    Willing to learn
    Works at Inland Respite
    Eric
  • Leslie
    Leslie
  • Constantin
    Works at PwC Wirtschaftsprüfungsgesellschaft
    Constantin
  • Hayden
    Software Developer
    Works at Everactive
    Hayden
  • Maciej
    Maciej
  • Novor
    Novor
  • Silvia
    Silvia
  • Sam
    Works at ¯\_(ツ)_/¯
    Sam
  • Claire
    PM at Crowd Supply ★ Talks Chair at Open Hardware Summit
    Works at Crowd Supply
    Claire
  • Michael
    Michael
  • Daniel
    Daniel
  • Jesse
    Jesse
  • Jarek
    Jarek
  • Rubab
    Rubab
  • Ricardo
    Ricardo
  • Aniruddh
    Aniruddh
  • Marten
    Creative Technologist
    Marten
  • Kendall
    Kendall
  • Bryan
    Works at Aqua Metrology Systems
    Bryan
  • David
    David
  • Anjali
    Anjali
  • Ira
    Software team leader
    Works at novocure
    Ira
  • Tomislav
    Tomislav
  • Brandon
    Brandon
  • sergio
    sergio
  • robbie
  • Kurtis
    Kurtis
  • Misha
    Misha
  • Joe
    Joe
  • BOB
    BOB
  • Justin
    Works at Toast Inc.
    Justin
  • Aaron
    Aaron
  • Juan
    Juan
  • Emmanuel
  • Tony
    Tony

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
  • Spectral Speech Rate Analyzer
    Debra Ansell
  • Smart Micro Pump
    André Araújo
  • Flight Control System Adapter
    Peter Griffin
  • Photogate Speedometer
    Aaron Stafford

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.
  • Are there any scholaship programs for this class?

    We offer scholarships that are both merit or need-based to help individuals upskill and improve their lives. In addition to meet the pre-requisites for this course, our scholarship criteria follow some of the guidelines below:

    • People with relevant proven work in the field
    • Undergraduate students or professionals from developing countries
    • Individuals belonging to minority groups that are underrepresented in tech

    If you fulfill any of the above-mentioned criteria you can apply for a fully-funded scholarship here.

    The number of seats reserved to scholarship are hard limited to at most 10% of the total available seats. Your application will be reviewed by a committee including the instructor of this class.

    Are there any scholaship programs for this class? We offer scholarships that are both merit or need-based to help individuals upskill and improve their lives. In addition to meet the pre-requisites for this course, our scholarship criteria follow some of the guidelines below: - People with relevant proven work in the field - Undergraduate students or professionals from developing countries - Individuals belonging to minority groups that are underrepresented in tech If you fulfill any of the above-mentioned criteria you can apply for a <a class='c-fgV c-fgV:h td-u' href="https://user.classpert.com/courses/making-embedded-systems/cohorts/yellow-seahorses/scholarship" target="_blank">fully-funded scholarship here</a>. The number of seats reserved to scholarship are hard limited to at most 10% of the total available seats. Your application will be reviewed by a committee including the instructor of this class.
  • What determines the price of the course?

    A Classpert cohort-based course requires 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 partially tailored to your needs and interest.

    What determines the price of the course? A Classpert cohort-based course requires 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 partially tailored to your needs and interest.
  • Should my company pay for the course? How can I convince them?

    Many employers offer reimbursement for courses related to your job. Ask your employer about tuition benefits. Even if there is not a 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. Some suggestions for the Making Embedded Systems course:

    • Improved embedded software design skills
    • Understanding how to work in an interdisciplinary team
    • Practice developing and optimizing systems
    • Exposure to a wide variety of industry best practices
    • New techniques to share with your team
    Should my company pay for the course? How can I convince them? Many employers offer reimbursement for courses related to your job. Ask your employer about tuition benefits. Even if there is not a 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. Some suggestions for the Making Embedded Systems course: - Improved embedded software design skills - Understanding how to work in an interdisciplinary team - Practice developing and optimizing systems - Exposure to a wide variety of industry best practices - New techniques to share with your team
Join the waitlist and get notified about the next cohort