Bachelor's or Master's degree in Computer Engineering, Computer Science, Electrical Engineering, Robotics, or related field.
5+ years of experience developing embedded software in C++ on Linux.
Strong proficiency in C/C++ programming and object-oriented software design.
Hands-on experience with camera and radar data processing.
Experience with embedded communication protocols like CAN and Ethernet.
Strong debugging and troubleshooting skills at the system level.
Knowledge of software validation, integration, and testing methodologies.
Responsibilities
Design and develop embedded software for safety-critical machine applications focused on perception systems.
Develop high-performance embedded applications in C++ on Linux platforms.
Implement and optimize radar and camera data processing pipelines for autonomous functionalities.
Integrate perception software with embedded hardware and control systems.
Troubleshoot and resolve software and hardware issues using debugging tools.
Execute software validation plans, including various testing methodologies.
Collaborate with cross-functional engineering teams throughout the software lifecycle.
Benefits
Collaborative and dynamic work environment.
Opportunities for professional growth and development.
Access to cutting-edge technologies in embedded systems and robotics.
Inclusive company culture that values diverse perspectives.
Participation in innovative projects that impact safety-critical technologies.
Full Job Description
Job Description
Duties & Responsibilities
Design, develop, integrate, and test embedded software for safety-critical machine applications with a focus on camera and radar-based perception systems.
Develop high-performance embedded applications using C++ on Linux platforms.
Design, implement, and optimize radar and camera data processing pipelines for perception and autonomous machine functionality.
Integrate perception software with embedded hardware, sensors, and machine control systems.
Debug, troubleshoot, and resolve software, hardware, and system-level issues using industry-standard debugging tools.
Develop and execute software validation plans, including integration, functional, regression, and system-level testing.
Collaborate with systems, machine controls, validation, and global engineering teams throughout the software development lifecycle.
Improve software performance, scalability, stability, and reliability through continuous optimization.
Participate in software architecture discussions, code reviews, and technical design reviews.
Support source control, software releases, and configuration management using Git and modern development practices.
Required Skills Required Technical Skills
Strong proficiency in C/C++ programming and object-oriented software design.
Experience developing embedded software on Linux platforms.
Hands-on experience with camera and radar data processing.
Experience with embedded communication protocols such as CAN and Ethernet.
Strong system-level debugging and troubleshooting skills.
Experience using Git, compilers, debuggers, and software development tools.
Knowledge of software integration, validation, and testing methodologies.
Preferred Technical Skills
NVIDIA development ecosystem (CUDA, TensorRT, Jetson, DRIVE platform).
GStreamer and multimedia pipeline development.
Experience with robotics, autonomous systems, perception, or sensor fusion.
Experience with unit testing frameworks such as Google Test (GTest) or C Test.
Familiarity with real-time embedded systems and safety-critical software development.
Education & Experience
Bachelor's or Master's degree in Computer Engineering, Computer Science, Electrical Engineering, Robotics, or a related technical discipline.
5+ years of experience developing embedded software using C++ in Linux environments.
Experience developing software for embedded, robotics, autonomous, automotive, or industrial machine applications is preferred.
Top 3 Skills
Embedded C/C++ software development on Linux.
Camera and radar perception processing.
Embedded system integration, debugging, and troubleshooting.
Soft Skills Required
Strong analytical and problem-solving skills.
Excellent verbal and written communication.
Ability to work effectively in a collaborative, cross-functional, and global engineering environment.
Self-motivated with strong organizational and time management skills.
Preferred
Experience leading technical discussions and mentoring junior engineers.
Ability to manage multiple priorities in a fast-paced product development environment.