I'm wondering if anyone has transitioned from web dev into doing more lower level firmware type programming for a job. How did this go? Do you have any advice? Was there some kind of curriculum you followed?
I am worried that specializing more will lead to fewer job opportunities, but I find myself gravitating more towards embedded types of projects in my free time and enjoying them much more than I do any kind of work I do during my day job.
The first thing to note is that "Embedded" is a very wide area, a lot of it is not too special and you might continue doing web development as you are used to, maybe with small adjustment of how you load, debug and communicate with your device.
It's the lower layers, mainly device drivers and BSP (Board Support Package) but even some algorithms close to the hardware or special optimizations, where things becomes interesting and requires specialization.
I worked on those lower layers and have found myself more than once debugging "real software" using a logic analyzer or other Electrical Engineering tools to catch a software problem.
How did it go for those transitioning "down" into embedded? usually quite well, you will need to catch up with the technology, learn some new concepts and make a change in the way you think of things, for example memory or multi processing, but it is definitely doable and enjoyable.
The problem I struggle the most with is that this industry is 20 years behind compared to modern software development. Since embedded is tied to hardware, and these products have a long life cycle, innovation moves very slowly and there is little motivation to change something that works. I am used to automated pipelines, tests, modern debugging tools etc, and I feel extremely limited going back to a very manual workflow. The use of OSS is almost frowned upon.
I would advise to research what tech stack they are using at any possible new position. Make sure there is a team of embedded developers that work together (not individually on different products). I would look into embedded Linux and Zephyr.
Can anyone who knows comment on the relative pay between embedded and (non FANG) web programming?