Software Engineer - Embedded Software
Indexed description
Who We’re Looking For
We are a dynamic team committed to making the impossible possible. Our staff comes from diverse backgrounds and experience levels, fueling our ethos of collective growth and passion towards our work. We warmly welcome individuals of similar mindset to join our ranks.
For this role, we are seeking a solid Embedded Software Engineer who can take full end-to-end ownership of software for our robotics components and systems. Whether your background is strictly in lower-level microcontrollers, real-time operating systems, or bridging the gap between hardware and high-level algorithms, we are looking for someone who can write robust code, integrate complex sensors, and thrive in a hands-on robotics environment.
Roles And Responsibilities (What You’ll Do)
As an Embedded Software Engineer, you will collaborate with an interdisciplinary team to bring our robotic systems to life. Your day-to-day responsibilities will include:
- Create software for robotics components and systems, including algorithms, high-level C++, lower-level C code, and user interfaces.
- Test software in system integration laboratories, simulation, and on fully-realized robots.
- Analyze system performance through the use of data logs and the creation of post-processing software and scripts.
- Troubleshoot and debug complex hardware-software interactions on embedded targets, utilizing software debuggers, profilers, and hardware lab equipment.
- Work in the design space by writing use cases and software specifications, and hold and participate in design reviews and coding peer reviews.
- Work with sensors and lower-level technologies like serial buses, i2c, SPI, and CAN.
- Integrate different sensor, actuator, and computing technologies into robotic systems.
- Document software using industry-standard best practices.
- Conform to company policies regarding confidentiality, software licensing, and export control restrictions.
- Work Authorization: Authorization to work in the U.S. without restriction is required. The company is unable to provide sponsorship for this position.
- Excellent software engineering habits.
- Familiarity with development in Linux-based environments.
- Experience with version control systems such as Git.
- Working knowledge of software debugging and profiling tools.
- Experience with embedded systems and real-time operating systems.
- Strong experience developing software with either C or C++
- Experience developing software with Rust for embedded applications.
- Experience with NVIDIA Jetson, IMX8, STM32.
- Direct experience with specific Real-Time Operating Systems (RTOS) such as FreeRTOS, Zephyr, or QNX.
- Familiarity with functional safety standards (e.g., ISO 26262) and secure coding guidelines (e.g., MISRA C/C++).
- Familiarity with heavy-duty or off-road vehicle networks, such as SAE J1939.
- UPMC health coverage with FSA or HSA options
- Comprehensive dental, vision, and life insurance
- Fidelity 401(k) plan with employer match
- Free catered lunch every day with a vegan option
- 31 Days of PTO (including holidays)
- Comp time for company travel
Create a free Caio profile to unlock more results and save your role and location preferences.
Unlock free search