The Reality of Learning Embedded

There's a big gap in embedded world.

I observed that your experience in embedded is either:

  1. Beginner. Familiar with Arduino. Nothing more.
  2. Veteran. You are battle-tested, lots of technical scars embedded (nice pun!) in your face.

Group #1, enjoying their craft with Arduino, but not realizing that there are a whole world beyond Arduino.

Group #2, too busy even to guide #1. They are in high demand, and they seemed to be always working on something.

If I draw those two groups, maybe it looked like this:

They live in a different island. They have different activity and rules.

Me myself, just stranded to the veteran island, so I know how it feels to live in both islands.

The problem is, I got there by swimming, forcing myself to move the hard way. But something I know for sure is swimming isn't for everybody.

Being a noob is both easy and difficult:

  • Easy because you have lots of tutorials for beginner
  • Difficult because you have lots of tutorials for beginner

You see the irony? Tutorials have been a blessing and a curse.

The Issue With Tutorials

I'm pretty sure you have followed a tutorial at some point in your embedded career. What you usually find?

Prepare the breadboard 👉 follow the wiring connection 👉 copy the example code 👉 build and flash. Voila!

Yes, there's some explanations (like Adafruit and Sparkfun tutorials, they're great!), but the nature of tutorial is to guide you do something really specific (like blinking LEDs or reading sensor), nothing more.

Problem arise when you want to level up your game. You might search for more advanced tutorials, like "how to use FreeRTOS", and fortunately you can get that tutorial.

You then search for even more advanced topic like "how to set correct FreeRTOS priority values", no tutorials.

You search "how to make performant multiple FreeRTOS tasks", you ended up with multiple sources, a bit here, a bit there. There's no single tutorials that explains all.

Yes, that's the reality when you leave that noob island.

You need to understand multiple concepts at once to understand FreeRTOS priority values.

You need to understand multiple concepts at once to make performant FreeRTOS tasks.

It's like Googling "how to build website like Facebook" and gets frustrated.

Building Facebook isn't a tutorial bruh.

Noob Island Inhabitants

They don't have tutorials for advanced topics so they do what they can. They make sub-par work, even though they use many advanced concepts. I've seen it with my own eye!

For example, I've seen a junior engineer wanted to run multiple tasks in parallel using ESP32. Instead of using the good ol' FreeRTOS tasks, he used some random library on the internet, acting as a scheduler, and throw code into the scheduler.

Well, to be fair, the code is working btw.


He wasn't aware that ESP32 has multiple core, and he wasn't even aware the framework provides xTaskCreate() to make tasks.

I Want to Help

There are definitely issues there, and instead of swimming by themselves to veteran island. I want to build a small ship to help noob island inhabitants cross the sea, and land safely at the veteran island.

I know, it's just a small dream, but I believe noob island inhabitants also deserve a better experience, better network, better friends, that they can find in veteran island. I believe I have to build a transportation mode, a ship if you want to call it, to help people cross the sea.

My Small Ship

Here's my little ship (looks like a boat, for now):

Yeah okay, it's a boat, but eventually I want to grow this little boat into a little ship, then a little yacht, and (hopefully) into a cruise ship. Here's what I will do with the ship:

For Noob Island to Veteran Island, I will help you cross the sea with my ship. Probably you will look like this:

And for Veteran Island to Noob Island, I will bring resources from Veteran Island, such as their Best Practices, their tools, their network, etc.

Basically I am a ship captain crossing sea back and forth.

For now, my little ship is a digital product you can buy right now. It's called Professional Firmware Development Guide, where I show you the workflow I used to build professional-grade firmware for my company and clients.

If you are interested, you can check it out here:

Your ship captain is signing out. See you later! ⛵

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. Join other 2400+ engineers by subscribing my newsletter.