Full Job Description
We are seeking a talented and motivated Perception Software Engineer to join our growing team. In this role, you will be responsible for designing, implementing, optimizing, and validating software modules that run on complex multi-processor embedded systems.
The ideal candidate is a self-driven engineer with strong problem-solving skills, deep expertise in computer vision and embedded software development, and a passion for delivering high-quality solutions in a collaborative environment. This position also offers opportunities to provide technical leadership and mentorship across engineering teams.
Responsibilities
• Develop, optimize, test, and maintain computer vision algorithms and tools related to camera calibration and geometric transformations for embedded platforms and PC-based environments.
• Integrate camera calibration technologies into embedded firmware for on-device execution and support deployment in production environments.
• Benchmark and optimize algorithms for heterogeneous computing architectures, including ARM CPUs, DSPs, and NPUs.
• Design and develop firmware components and SDK packages for DSP and NPU platforms.
• Define validation strategies and test plans to ensure software quality, performance, and reliability.
• Document designs, technical findings, best practices, and implementation guidance.
• Collaborate with internal and external stakeholders to support product development and deployment activities.
• Participate in code reviews and ensure compliance with automotive software quality standards, including MISRA guidelines.
Qualifications
• Minimum Master's degree in software engineering, computer science, and/or equivalent disciplines
• Minimum 5 years of advanced C/C++/Python and embedded software development experience
• Experienced with computer vision algorithm development with strong understanding of machine learning algorithms and concepts
• Experienced working with embedded system running RTOS/Linux and knowledgeable with threading, optimization, memory management, and interrupt handling
• Experienced with major ML frameworks, ONNX, container technologies, and build systems
• Knowledge in SoC/processor architectures, Xtensa and/or ARM processors
• Strong analytical/problem solving skills, software design skills, and communication skills