Embedded Software Engineer (C/C++ | Micro Controller)
Overview
In this role you will develop and integrate embedded firmware and software for Surfscan systems, enabling wafer inspection and defect detection. You will collaborate with cross-functional teams across the US, India, and Singapore to deliver robust, scalable platform software. You will optimize performance, reliability, and diagnostics for precision hardware and real-time processing. This position offers the chance to contribute to high-precision manufacturing tools used by leading semiconductor fabs. You will work on impactful projects that improve yield and process control in a fast-paced innovation environment.
Compensation / Benefitsmedical, dental, vision401(k) with company matchingemployee stock purchase program (ESPP)tuition reimbursementpaid time off and holidayswellness and EAP
ResponsibilitiesDevelop embedded firmware and software in C/C++ for heterogeneous SoCs across Linux and RTOSDesign software for motion control, automation, image acquisition, and real-time signal processingAnalyze system requirements and develop low-level software for hardware subsystemsDevelop and maintain BSPs, device drivers, bootloaders, and platform software for embedded LinuxHardware bring-up, system integration, performance tuning, and root-cause analysisCollaborate with Electrical, FPGA, Mechanical, Systems, and Product Engineering teamsCreate diagnostic and validation tools in C++ and Python for engineering, manufacturing, and field supportEnhance firmware/software architectures for better control, reliability, and scalabilitySupport system integration and issue resolution with customers, suppliers, and partners
Key requirementsEmbedded Linux development, BSP customization, device drivers, kernel debugging, bootloader integrationYocto Project for BSP integration and build system customizationARM-based SoCs, RAM-constrained RTOS environmentsPCIe, camera interfaces, image processing pipelines, sensor integrationLabVIEW, Python, MATLABObject-oriented design and C/C++ developmentFPGA interfacing and inter-board communicationAbility to read schematics and use basic test equipmentExperience with RTOS such as FreeRTOS or TI-RTOSStrong debugging, problem-solving, and cross-functional collaborationexcellent communicationproblem-solvingteam collaborationARM Cortex-R/MTI Jacinto or SitaraTI C66x/C7x DSPs