Jobs · Engineering · California

Embedded Software Engineer (C/C++ | Micro Controller)

KLA · Milpitas, CA · 2 wk ago
Engineering$136k–$232k/yrFull-time

KLA is a global leader in diversified electronics for the semiconductor manufacturing ecosystem. Virtually every electronic device in the world is produced using our technologies. We invent systems and solutions for the manufacturing of wafers, reticles, integrated circuits, packaging, printed circuit boards, and flat panel displays. Our teams thrive on tackling complex problems and investing 15% of sales back into R&D.

About the Role

The Surfscan group within KLA’s Global Products Group (GPG) focuses on technology that enables wafer, IC, and equipment manufacturers to develop, qualify, and monitor their process tools. Defects and process non-uniformities detected on Surfscan equipment allow for early identification of yield excursions. The flagship Surfscan products include the SPx platforms for wafer surface quality and defect inspection.

Responsibilities

  • Develop embedded firmware and software in C/C++ for heterogeneous SoC platforms, including ARM application processors, ARM real-time cores, and TI C66x/C7x DSPs, across Linux and RTOS environments.
  • Design and implement software for precision motion control, machine automation, camera configuration and image acquisition, sensor data acquisition, and real-time signal processing.
  • Analyze system-level requirements and architect, design, develop, and debug low-level software for complex hardware subsystems.
  • Develop and maintain Board Support Packages (BSPs), device drivers, bootloader configurations, and platform software for embedded Linux systems.
  • Perform hardware bring-up, system integration, performance tuning, and root-cause analysis across processors, peripherals, networking interfaces, imaging subsystems, and control systems.
  • Collaborate closely with Electrical, FPGA, Mechanical, Systems, and Product Engineering teams across global locations, including the United States, India, and Singapore.
  • Develop diagnostic, configuration, and validation tools in C++ and Python on Windows platforms to support engineering development, manufacturing, and field troubleshooting.
  • Enhance and maintain existing firmware and software architectures to improve subsystem control, diagnostics, reliability, performance, and scalability.
  • Work directly with customers, suppliers, and technology partners to support system integration, issue resolution, and product deployment.

Requirements

  • Proficiency in embedded Linux development, including BSP customization, device drivers, kernel debugging, bootloader integration, system bring-up, and performance optimization.
  • Hands-on experience with the Yocto Project for BSP integration, package management, Linux distribution creation, and build system customization.
  • Good understanding of embedded peripherals and interfaces, including SPI, I2C, UART/serial, GPIO, and Ethernet.
  • Strong programming skills in C/C++ for embedded systems development.
  • Experience with FPGA interfacing and inter-board communication.
  • Ability to read electronic schematics and use basic electronic instruments, such as digital multimeters and oscilloscopes.
  • Experience with RTOS environments such as FreeRTOS, TI-RTOS, or equivalent platforms.
  • Experience developing software on ARM-based SoCs and multicore embedded systems.
  • Strong debugging, problem-solving, and system integration skills.
  • Excellent written and verbal communication skills.

Preferred Qualifications

  • Strong experience developing firmware for ARM Cortex-R/M class processors operating in memory-constrained, real-time environments.
  • Experience with TI Jacinto or Sitara platforms.
  • Experience developing software for TI C66x and/or C7x DSP architectures.
  • Strong experience with PCIe architecture, device drivers, and system integration.
  • Experience with camera interfaces, image processing pipelines, sensor integration, industrial automation, or precision motion-control applications, including high-performance CCDs and photodiodes.
  • Experience using LabVIEW, Python, and MATLAB.
  • Experience with object-oriented design and C/C++ development.
  • Hands-on knowledge of machine and motion-control systems.
  • Experience developing software for high-speed network data transfer using protocols such as InfiniBand or RoCE, including data-path configuration and routing across complex network topologies.
  • Experience developing signal-processing applications, including FFT/DFT-based algorithms.

Qualifications

Bachelor’s degree in Computer Science, Computer Engineering, Electrical Engineering, or a related technical discipline with 5+ years of relevant experience; or an advanced degree with 2+ years of relevant experience.

Pay

Base pay range: $136,300.00 - $231,700.00 annually.

Benefits

  • Performance incentive programs.
  • Medical, dental, vision, life, and other voluntary benefits.
  • 401(K) with company matching.
  • Employee stock purchase program (ESPP).
  • Student debt assistance and tuition reimbursement program.
  • Development and career growth opportunities and programs.
  • Financial planning benefits.
  • Wellness benefits, including an employee assistance program (EAP).
  • Paid time off and paid company holidays.
  • Family care and bonding leave.

Similar jobs