How to become an Embedded Software Engineer

You want to become an embedded software engineer?
No matter where you are right now, you are probably surround by embedded systems without even realizing it:

An embedded system is a comupter systen that has a dedicated function within a larger mechanical or electronic system.

This could be for example, the microcontroller in your coffee machine or the microcontroller embedded in your RGB Bulbs. But embedded systems are also used in Cars, Planes, Spaceships, and so on.

5 Steps to become an Embedded Software Engineer

So if your goal is to work on one of those systems and become an embedded software engineer than watch my YouTube Video on “How to become an embedded software engineer”.

Learn to programm in C

C is still the programming language that is dominating the embedded space, even though there are alternatives around, to get a good understanding of the basics. You can and should start by learning C on your desktop computer before you are using it on an embedded device. The reason for this is, that you want to learn one thing at a time.

A good introduction to the C programming language is the C in 4 hours course.

Learn the basics of electronics

Working with embedded systems you are very close to the electronics side of things, so you need to understand the basics here, what is a resistor, how does an analog to digital converter work etc.

An introduction to electronics basics can be found here.

Get started with Arduino

While most of the commercial system will not use Arduino, it is great for self-taught embedded software engineers for two reasons:

  • It provides a nice abstraction layer to some of the more advanced embedded system topics and therefore is easier to learn as a barebone microcontroller system.
  • It has a very large community, so it is easy to find project ideas, blog posts and solutions to your problems because chances are you are not the first person that has this problem.

To get started with Arduino, I recommend to get an Arduino starter kit and this course here

Take the next step and use a more barebone microcontroller.

Once you feel comfortable with the Arduino environment you can start exploring other system, like for instance the STM32 Nucleo boards, that give you even more direct access to the hardware.

To get started with other microcontroller you can check out either this or this course

Never stop learning

Now you should be able to develop your first projects, from this point on just keep learning, increase the complexity and difficulty of your project, and have fun!

7 thoughts on “How to become an Embedded Software Engineer”

  1. sir, I am an electronics and communication engineer. I have already done c programming, analog and digital electronic courses at university. Also, an Iot home automation project using nodeMCU in my 3rd year. so should I start by watching tutorials on c programming, electronics and arudino or do some other projects?

  2. Thanks you sir, this video was helpful, I’m currently a uav pilot /engineer trying to develop my own systems.


    Good day Professor,

    I’ve been watching your videos and started following your tips while taking the course next year.
    Please provide an advice which course should I take? Should I go for Engineering tech degrees or diploma in robotics and automation? I am really unsure which is the best path to go. Is there a course specifically for embedded software engineer?
    Thank you sir.

  4. Pingback: Study To Code From Zero – How To Train Your self Programming From Scratch

  5. I like your video, but I prefer to use the resources that I can read (books for example) rather then the videos, so if you could add some readable material as alternative to the video resources, I’d appreciate it.

Leave a Comment

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.