1. Прежде всего, нужно знание схемотехники, но в вашем случае этот этап можно вычеркнуть.
2. Естественно, знание основ С и С++ (синтаксиса, базовых конструкций). Советую вам использовать в своих проектах С++, поскольку зачастую вы сможете писать в стиле С без каких-либо проблем, а при необходимости воспользоваться фичами/библиотеками для С++.
3. Навыки hardware и software отладки. Здесь просто нужна практика с любимой IDE.
4. Понимание указателей, типов памяти (статическая, динамическая, автоматическая, регистровая). Как память выделяяется и прочее.
5. Знание базовых структур данных. Это немного скользкий пункт, поскольку С++ предоставляет хорошую (хотя и весьма минималистичную) стандартную библиотеку STL, в которой есть большинство из необходимых структур данных, но они используют довольно много дополнительной аллокации памяти, поэтому если пишете под что-то 8битное, то имейте это ввиду.
6. Знание git на базовом уровне сейчас важно для джуна любой IT специализации.
7. Неплохо бы иметь базовое представление о том как устроен микроконтроллер и его архитектура.
8. Неплохо бы понимать RTOS (FreeRTOS - классика жанра), а главное зачем он нужен, а когда он не нужен или вреден.
9. Лично мне всегда в работе пригождается python, но это всегда сторонние задачи/автоматизация.
P.S.
Нашел ещё вот такой RoadMap.
P.S.S. Получилось довольно объемно. Но пункты 2-5 по сути можно объединить в один. Все это можно изучить написав парочку проектов для классической STM32 + HAL.
P.S.S.S. Сам начинал как hardware разработчик. Путь embedded разработчика начального уровня не был сложным для меня и занял не очень много времени.