Key Skills: Embedded C++, Embedded Software, Linux, Git/GitHub, Agile, Software Design & Analysis, Debugging, CAN/EthernetPosition Overview
We are seeking an experienced Embedded Software Engineer to support the Robotics division and contribute to the development of safety-critical machine detection applications.
The selected candidate will work as part of a cross-functional engineering team responsible for designing, developing, integrating, testing, and validating embedded software features for electronic control systems. The role requires strong embedded C++ development skills, Linux experience, software design and analysis capabilities, and the ability to troubleshoot complex system-level issues.
The ideal candidate will be a strong technical contributor who can collaborate effectively with global teams across machine, systems, software, and validation engineering.
Required Education & Experience
- Bachelor's degree in Computer Science, Software Engineering, or a related field plus 6-7 years of relevant experience; OR
- Master's degree in Computer Science, Software Engineering, or a related field plus 5 years of relevant experience.
Required Qualifications & Skills
- Strong hands-on Embedded C++ development experience.
- Strong software coding, design, and analysis skills.
- Experience developing software for embedded electronic control systems.
- Strong experience with Linux environments.
- Proficiency with Git/GitHub, debuggers, and compilers.
- Experience with C test and Google Test (GTest) suites.
- Experience designing and specifying system-level software features.
- Experience working with machine communication/data links such as:
- CAN
- Ethernet
- Other embedded communication protocols
- Strong debugging, troubleshooting, and issue-resolution skills.
- Experience with software triage and root-cause analysis.
- Ability to develop validation plans and support software validation activities.
- Strong written and verbal communication skills.
- Ability to communicate technical positions clearly and professionally.
- Ability to work effectively within a culturally diverse and globally distributed engineering team.
Key ResponsibilitiesEmbedded Software Development
- Design, develop, integrate, and test embedded software features using C++.
- Develop embedded software for machine safety and detection applications.
- Perform software design, analysis, implementation, debugging, and optimization.
- Develop and maintain software for embedded electronic control systems.
- Work with Linux-based embedded environments.
- Use Git/GitHub, debuggers, compilers, and other development tools throughout the software development lifecycle.
System Integration & Troubleshooting
- Perform software integration and system-level troubleshooting.
- Investigate and resolve software defects through issue triage, debugging, and root-cause analysis.
- Collaborate with systems, machine, hardware, and validation teams to resolve technical issues.
- Support integration of embedded software with machine communication networks and data links.
- Work with CAN, Ethernet, and related communication technologies.
Testing & Validation
- Develop and execute software validation plans.
- Develop and maintain automated/unit testing using C test and Google Test (GTest).
- Support software integration and system-level testing.
- Analyze test results and troubleshoot failures.
- Ensure software features meet defined functional and system requirements.
- Work within an Agile/Sprint development environment.
- Participate in sprint planning, technical discussions, reviews, and retrospectives.
- Coordinate with global machine, systems, software, and validation engineering teams.
- Clearly communicate technical challenges, recommendations, and project status.
- Work effectively within a culturally diverse and globally distributed team.
Desired / Preferred Skills
- Experience with GStreamer.
- Experience working with detection sensors and sensor-based applications.
- Experience in robotics, autonomy, or autonomous machine systems.
- Experience developing software for safety-critical applications.
- Excellent communication and collaboration skills.
- 6-7+ years of relevant experience with a Bachelor's degree OR 5+ years with a Master's degree.
- Strong Embedded C++ experience is mandatory.
- Linux + Git/GitHub experience is required.
- Strong software design, analysis, debugging, and troubleshooting skills are required.
- Must have experience with C testing and Google Test (GTest).
- Experience with CAN/Ethernet or other embedded datalinks is required.
- Prioritize candidates with robotics, autonomy, machine controls, sensor detection, or safety-critical embedded software experience.
- GStreamer experience is a plus.
- Candidates must be comfortable working in an Agile/Sprint environment.
- Strong communication skills are important, particularly the ability to clearly communicate technical viewpoints professionally and collaboratively.
- Experience working with global and culturally diverse engineering teams is preferred.