Embedded system, you increased something from a two byte unsigned int to four bytes? Does it still fit on the device ordo I need to change the area in memory where my program is being loaded, do I still have enough space for the stack, was I disciplined about my mallocs and frees and always make the right size etc. Beginners can make a fair fist of a web app because you can screw up royally and it will still work.
Start with the basic skills you'd need for any software like data structures and algorithms. But you'll actually need to know it for the job, not just for the interview.
Add extra low-level computer systems skills.
Add electronics skills.
Depending on the application, you might also need to know control systems, signal processing, communications theory, hardware security, or computer architecture, for example.
Then add the engineering math/physics knowledge for the specific domain.
It adds up. If you can't do those things, all of those problems need to already be solved, simplified, and polished for you. At that point, you've avoided firmware engineering and gone right back to application development.
Firmware dev you end up working on obscure proprietary systems where you don't have the luxury of just Googling every problem because there isn't a ton of devs working on the same thing as you.