Минимальными - знание языка программирования (лучший вариант Rust или Purescript, но сейчас модны C, js и питон), и прямые руки, что бы не сжечь устройство что-то не так как надо воткнув.
На более серьезном уровне надо уметь работать с очередями сообщений (обычно MQTT), понимать конкурентное программирование (Erlang, Rust), разбираться в безопастности и предствалять какие бывают уязвимости. А так же владение электроникой.
На совсем продвинутом - знакомство с линейной логикой и системами proof assistant, так как в этой области может тремоваться очень высокая надежность.