@itareanlnotani <--
*someone who previously identified as an embedded software developer
FTFY
I *used* to be an embedded software engineer. Many many moons ago. I do still dabble.
When I was doing that, C, 8051 Assembler, Visual Basic (mostly as glue or frontend), knowledge of how to use an ICE - in circuit emulator (that was shared between all the engineers in the company!, so had to beg to use, and it was ALWAYS in use), knowledge of how to read a datasheet, and make code to get the hardware to work solely from the datasheet, as the internet wasn't much good at that time.
I worked on software for Parking Meters in Cape Town, on Healthcare products,on Parking meter Systems, and on custom controllers.
Lots of burning EPROMS at the time for code. You learnt to debug code properly, as you didn't have EEPROM's. Erasing a PROM meant sticking it in a UV case for 20-30 min to erase, so you could start again. Programming might mean 5 min to upload.
Fun though. I worked with 1 touch dallas touch chips and even wrote an emulator to pretend to be one so I could debug code. Which was funny, as they were supposed to be secure that couldn't be copied. No, but you sure could pretend to be one, which was much the same thing haha.
In China I also did some work on IP Camera software; wrote custom firmware for a range of those.
Started development on a JAMMA board hardware, but unfortunately didn't finish due to circumstances. Definitely should have kickstartered that at the time. Or got investment capital
Since then, I've done front end, back end, management, and am back at consulting these days.
I would say nowadays, if you want to move into that area, start learning some basic PCB design, and hardware basics.
Learn how to use various environments.
eg low memory embedded linux ucLinux. Learn about partititioning flash, talking to hardware over i2c etc. Playing with router hardware will help a bit with that. Or get a PI and learn more lower level things.
Get some experience on different ARM SoC's. One thing you'll notice is that the drivers all suck ha.
Microcontroller stuff, eg arduino and similar lower end devices.
RTOS's
Lots of things to specialize in, dependant on what you are doing.
Read things like
eevblog.com
blog.voneicken.com
https://jaycarlson.net/ (lots of great info on various things)
etc
There are plenty of local embedded development houses doing stuff, you can call around and see if there are people hiring.
Definitely possible to get a job in embedded dev without a degree - I don't / didn't have one, although I am finally doing it now.
A keen sense of learning, being flexible, fast learner, will help you.
In case you fancy reading through older stuff i have written about that touches on hardware and embedded stuff -
https://www.computersolutions.cn/blog/category/firmware-2/
Was interesting for me to go back and look at some of my older posts anyway haha.