A harsh truth to deal with if you are starting embedded software development

Tobias Aguiar
3 min readFeb 20, 2023

--

Photo by Brett Jordan on Unsplash

Preface

Recently, I red something on linkedin that made me think a bit.

To resume, it says that there is chance that it can be overwhelming when you are starting on embedded systems, mainly if you are a self-taught or a fresh developer, like me.

An unhealthy expectation

In general some companies expect you to have knowledge in all fields :

  1. Baremetal programming
  2. RTOS (freeRTOS, Zephyr)
  3. Embedded linux (Device drivers, networking, file systems)
  4. CI/CD
  5. Bash scripting
  6. Communication protocols
  7. Read schematics and understand a bit about electronics

Of course it’s not the case for all industries, because they have different demands. For example, a job in the aerospace industry may require a focus on safety-critical systems, whereas a job in the consumer electronics industry may require expertise in low-power management.

Always late

As a new embedded software engineer, I often feel that my knowledge falls short of what the market demands, which can be frustrating.

This can lead to symptoms such as impostor syndrome and other collateral side effects that can have negative impacts on your mental health.

The first thing you need to have when entering this field, whether you’re moving from other software development field or just starting, is :

  1. Emotional intelligence : You’re going to have more frustrating than joyful moments. You need to control your emotions and stick with it.
  2. Patiente : You are not going to learn all these topics overnight when hired by some companies. In the beginning you will be hired by the potential and behavior, rather than your skill and knowledge themselves.
  3. Discipline : Your skill set is built brick by brick. Instead of focusing on where you want to get in terms of skills and knowledge, focus on your daily mini actions and habits you need to built to get there. Thinking far ahead can be overwhelming, whereas thinking on what can you do today to get better 0.01% seems a lot more feasible.

Final thoughts

It’s important to keep in mind that skills and knowledge can be acquired over time through education, training, and work experience. While it may be daunting at first to think about learning all the required skills, it’s possible to build a strong foundation in one area and then expand into others as needed.

Find your own learning peace and just worry about what can be good to your mental health, because without it you won’t be able to progress.

Don’t be soft to yourself, but respect your boundaries. With patiente and discipline we can get there.

And remember to have fun! It’s not about getting good at it, but rather feeling the process of progressing step-by-step (at least it’s what I think).

As always, thanks for taking the time to read me!

Other articles

-Topics you should learn in embedded software development

-Firmware vs device drivers vs application software : are they all the same ?

--

--

Tobias Aguiar

Software developer | Trying to make complex concepts look easy | Want help or discuss about embedded software development? Email me! tobi.aguiar01@gmail.com