Eu comecei nessa área ai como programador de sistemas embarcados, mechendo com C e Assembly. Hoje migrei um pouco, trabalho mais com alto nível, ainda no mundo embarcado mas com Android Embarcado.
Eu vejo que a própria área de embarcados não exige tão fortamente o low level como já foi um dia. Lógico, ainda é importante, ainda é necessário, porém hoje em dia já existem abstrações e linguagens mais alto nível que podem ser usados para programar sistemas embarcados.
As próprias empresas de microcontroladores já fornecem bibliotecas de HAL (Hardware Abstraction Layer) em que tu pode usar API para configurar periféricos sem ficar configurando reigstradores diretamente.
Além disso, já temos linguagens mais alto nível integradas a alguns microcontroladores, como Python e Javascript.