Neither side is objectively better or worse, but having experience in both has changed how I approach problems.
embedded linux pay is fine but not great, not sure how it compares to full stack jobs.
full stack at least is more remote friendly as it does not need deal with hardware hands on which is not remote friendly, and, things made by full stack is potentially more scalable.
You would appreciate that webapp buttom.
I don't think I would have appreciated it at different times in my career, but for me, right now, I'm loving every minute of it.
The biggest issue I've faced (beyond the obvious issues of getting anything to work at all), is how to organize the concepts.
The "Data-Oriented Design" folks have had a huge impact on that. Specifically, talks from Andrew Kelley, Mike Acton and the book by R. Fabian.
The second thing is registers. Just toss the HAL mess, pick up the Reference Manual and start poking registers. It's so much more enjoyable (and reliable) for firmware work.
I don't know about job opportunities as I'm running my own hardware business, but if you're feeling pulled in this direction, I highly recommend taking a closer look.
I’m not sure how I would begin making a career transfer. Would anyone happen to have any advice / experience on this? I would be really grateful!
(based in UK if that helps)
First, study C and/or Rust on your own. Maybe do a personal project or two.
Second, find something at work where Rust or C would bring some benefits. Tell your boss that you think this would work better in a language like Rust or C, and explain why. Volunteer to try to do it. (Note: Appearing too eager at this point might be a mistake.)
Do the second step a few times and you become the Rust/C expert. And you get paid as you do the work that helps you get better!
If OP plays it wrong they can also look like a tonedeaf dunce. Definitely try to read the room.
As for the second point, that is a great suggestion. However, I'm very limited by my current working environment (regulation, corp. restrictions, etc.) so it becomes a little more difficult.
I believe I will just have to push very hard for option one and continue to study areas of interest in my spare time. I'm reading xv6: a simple, Unix-like teaching operating system which is helping me grasp some practical applications using C.
The kernel has a lot of it's data structures and functions so my work revolves around using that instead of the built-ins.
Software development is a very segmented world. In the various social circles I'm connected to, I know devs who were thrilled to finally be making 6 figures 7 years out of college (in line-of-business software in a regional hub) and devs who were disappointed not to have crossed 400 k$/yr in that same time span (at FAANG in the bay area).
That is how I see it. Others may see it differently.