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.