Image from TU Delft

3 Essential Skills To Survive Embedded Career

Bob is an embedded software engineer, he thinks that writing well-crafted software is all he needs, so he learns and practices:

  • Clean and beautiful software architecture

  • Best design patterns and each use case

  • Algorithms for many problems

While his software is beautiful and readable, he is also:

  • Struggling to bring up a new development board his boss asked 2 weeks ago

  • Confused why the device he is working on cannot last long, even with a 10000mAh battery

  • Angry when the sensor is outputting messy data that breaks his algorithm

Bob is a good and disciplined engineer, but his boss needs to hire Arjun, another embedded engineer to back him up.

Arjun believes that embedded software β‰  computer software. Because embedded systems are a combination of hardware and software, he thinks that you need to understand electronics and software engineering to make things happen, fast (he’s right, you know).

But because he has weak software skills, the firmware he wrote is hard to maintain and unreadable. Arjun needs to consult a lot to Bob about modular firmware design, and coding best practices.

Yeah, I solved the dev board and the battery issue. The messy output from sensor is because of unstable Vref and incorrect instrumentation op-amp choice. Bob sucks, I love working with him though.


Arjun’s code is a mess. We’re best friends now.


Now, while the story (and the quotes above) is 100% fabricated, I have seen and heard many similar stories: engineers struggle to move forward because of lack of basic understanding of electronics and software design.

To successfully work on Embedded Systems, you actually need 3 main skills:

πŸ‘‰ Computer Science
πŸ‘‰ Electrical Engineering
πŸ‘‰ A third field depending on your interest

Take a look at this interesting diagram:


We need CS because there are programming aspects in Embedded Systems. We have to create robust, and efficient code for the device. Bob is the best example of this.

We need EE because we will be interfacing with electronic devices like sensors and actuators (thanks Arjun for solving the op-amp problem!).

Understanding the electronics under the hoods will make your life as an embedded engineer easy.

Lastly, we need a third field. It means that if we work on embedded devices on vehicles then we need to learn and understand automotive: its standards, the rules, the principles in auto.

The same with other fields.

I used to work in mining and marine, so I need to learn and understand how mining processes are done, how harsh the environment is, etc.

If we become just either Bob or Arjun, we are crippled.

If we become both Bob and Arjun, we are unstoppable.

Whenever you're ready, there are 2 ways I can help you:

1. Professional Firmware Development Guide. If you're looking to build professional-grade firmware, I share 6+ years of expertise developing firmware. This guide shows you the exact workflow I use to build high-quality firmware for my company and my freelance clients.

2. Arduino Hobbyist into Pro Embedded Engineer Book. I'm writing a book to help Arduino hobbyists turn themselves into Pro Embedded Engineers.