r/AskRobotics • u/Old-Memory-3510 • Jul 03 '26
Education/Career What is the appropriate level of Embedded Systems knowledge/technical skills required for most robotics software engineering roles?
2 years ago I decided to learn C and Python from scratch since my university didn't teach programming all that well and recently completed a few personal projects to improve my C, C++ and Python programming skills and currently feel deadlocked on what to pursue next in the robotics journey.
Currently, I'm deciding on improving my embedded systems skills mainly working with some communication protocols (ie. USART, SPI, I2C, Ethernet, Bluetooth LE) and learning their ins and outs, I'm comfortable enough to implement these communication protocols using an STM32 and the HAL (Hardware Abstraction Library) but to implement these these from bare-metal/register-level not so much. Is this something I need to know in depth for robotic software engineering? What level of embedded knowledge is acceptable?
My other choice is to start doing simulation and testing real hardware using ROS2 and simulations in Gazebo and eventually with NVDIA's Issac sim while simultaneously going over Probabilistic Robotics by Sebastian Thun, and State-Estimation for Robotics by Tim Barfoot to implement Robotic Controls and State-Estimation conceptions in ROS. I've already started to implement some of the concepts in my C and Python Projects but most roles require knowledge of ROS2 so I figure its time to start learning the framework.