Starting out in embedded programming? Understand these five things now and save yourself a lot of brain-ache later on! From Python programming to embedded C++ --- I coded control modules for my own electric cars ⚡ and had to learn some lessons the hard way. Embedded code on an STM32 or ESP32 has very different constraints to the business logic on Amazon AWS EC2 and Lambda that I was used to. #5 Memory is a precious resource - static memory allocation at the beginning of a program is common! #4 importing a library and changing it is normal. Rather than monkey-patch around the functionality is there, embedded software engineers pull the library into their main repository and modify it recklessly! #3 input filtering is important, you need to take averages of analogue inputs, or a tiny blip in the signal will throw your code - and tiny blips in the signal are normal! #2 🔥 destroying hardware is normal in embedded - they call it the smoke test when making PCBs - be prepared and be smart about which components you let fail to avoid costly downtimes while waiting for components in the post #1 the slow feedback loop is terrible if you are not prepared. They even have a term for it, they call it "hardware in the loop" or HIL testing. Don't underestimate how long it takes to unplug a device, and walk to the other side of the room to test a code change! Make yourself a short feedback loop first, only then write your code. I hope this helps someones, these are all lessons I had to learn the hard way, coming from writing business logic in SaaS startups to writing embedded code in electric cars. https://foxev.io/vehicle-control