Embedded programming is also harder to do remotely due to needing hands-on access to development hardware, frequent access to hardware engineers, expensive test equipment, and so forth.
I worked as a C and then C++ dev for a few years and then I started a Ph.D writing a C++ code base.
I remember the day that I got java 0.7 running on my spark 20. I would never touch the STL again, never have to worry about malloc and #def overwrites. No more gdb.
It's also a silo that can be hard to get out of and is very hard to get into, because all you do is C or C++ work and everyone wants C or C++ experts for their jobs.