In big companies, they tend to separate embedded engineers by disciplines such as firmware, hardware, interface software, and PCB layout. Still, I think it's more fun to work 'full stack' and build all aspects of the design when possible. Obviously some projects are too large for this approach. All of my experience is with a company that has people separated out. I would like to transition to a full stack role at some point, but I'm not sure if there is a large demand for embedded systems engineers with broad skill sets.
Is there truly a need for engineers that have exposure to all these skill sets?
I have a BS in Electrical Engineering and an MS in Computer Science. I have been doing embedded systems as a consultant/contractor for over 35 years,working for both small companies you've never heard of and large ones like Sony, DirecTv and Apple.
For the smaller companies (typical number of employees: 25, number of other engineers: 0-4), I get involved in everything: hardware design (including choosing parts and creating a BOM), PCB layout, firmware design, hardware/firmware testing of said board, and hardware design/layout/firmware design for production test equipment for high-volume manufacturing in China or wherever. For these smaller companies, I typically get hired just because I have the combination of a BSEE and MSCS (and a track record of successful projects) since they can get by on hiring one engineer instead of two or three.
For the larger companies, I'm typically hired to work in only one area, more likely firmware than hardware (since it seems they always need more firmware engineers). I'll be working with several other engineers, sometimes as lead engineer of a small group even though I'm a contractor. I can't say I like one (large companies vs small companies) a lot more than the other, because they're two completely different environments. But if I had to choose only one, it would be the smaller companies where I can do it all. But you do need the skills to pull it off.