Jobs · Engineering · California

Embedded Software Engineer

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

Job Responsibilities

  • Own Critical Projects & Features: Design, develop, and deploy complex embedded software/firmware for machine control in semiconductor inspection systems.
  • Build demanding quasi real-time applications in C/C++ for image capture systems running on environments such as real-time Linux or VxWorks.
  • Drive Implementation: Design and implement robust, scalable software for system control, high-speed data acquisition, image processing, and intricate hardware interaction.
  • Translate system-level requirements into well-partitioned user-space and kernel-space designs where appropriate.
  • Own Low-Level Interfaces: Develop and debug Linux kernel drivers and related user-space components for custom hardware, including PCIe device enumeration/bring-up, DMA and interrupt handling, memory-mapped I/O, and performance tuning for high-throughput/low-latency data paths.
  • Collaborate Across Boundaries: Partner with mechanical, systems, electrical, optics/opto-mech, algorithms, and applications teams to deliver integrated solutions from concept through production.
  • Raise Team Effectiveness: Share expertise through design reviews, debugging sessions, documentation, and lightweight coaching to help the team deliver consistently high-quality software.
  • Drive Best Practices: Champion modern development practices (Agile, CI/CD, code reviews, automated testing). Define and execute test plans to measure subsystem performance; document, analyze, and present results.
  • Solve Tough Problems: Troubleshoot complex system-level issues across hardware, kernel, and user space; optimize performance-critical software and improve system reliability.
  • Influence the Roadmap: Contribute to technical planning, estimation, and architectural tradeoffs. Participate in all stages of development, including design, implementation, integration, deployment, testing, and field troubleshooting.

Required Skills & Qualification

  • BS/MS in Electrical Engineering, Computer Science, Computer Engineering, or a related field (or equivalent practical experience).
  • 5+ years of embedded software development experience in an industrial or product-focused environment (Senior level).
  • Strong C/C++ skills and solid software engineering fundamentals (OOD/OOP, design patterns, testable design).
  • Strong experience with Linux and/or RTOS environments, multi-threading, synchronization, and embedded software architecture; familiarity with Linux kernel concepts (process context vs. interrupt context, basic memory management, sysfs/debugfs, etc.).
  • Hands-on experience developing and debugging Linux kernel drivers (preferred upstream-style workflow), including device-tree/ACPI exposure as applicable, and strong understanding of PCIe fundamentals (configuration space, BARs, interrupts/MSI/MSI-X, DMA, and link characteristics).
  • Experience with communication protocols such as Serial (RS-232), Ethernet, EtherCAT, and TCP/IP sockets/network programming.
  • Strong analytical and communication skills to present designs in reviews, work effectively across disciplines, and drive issues to closure in a collaborative team environment.
  • Self-motivated and curious; able to learn quickly and turn prototypes into quality, maintainable production code used in mission-critical applications.
  • Strong software debugging and troubleshooting skills are required.

Preferred (nice to have) Skills

  • Hands on experience and laboratory exposure to electrical, mechanical and optical measurement instruments.
  • Linux administration and debugging tools knowledge (e.g., perf, ftrace, trace-cmd, gdb) and familiarity with UML or similar modeling methods.
  • Experience with high-speed I/O subsystems and driver ecosystems (PCIe endpoints/switches, DMA engines, IOMMU concepts) and diagnosing throughput/latency issues.
  • Knowledge of Python or other scripting language.
  • Systems thinking based on first principle and physics.
  • Project planning and management skills.

Pay Range

Base Pay Range: $136,300.00 - $231,700.00 Annually

Similar jobs

Embedded Software Engineer

Two Six TechnologiesHerndon, VA· 1 wk ago
Information Technology$106k–$159k/yrapply on app.greenhouse.io

Embedded Software Engineer

General Dynamics Mission SystemsBloomington, MN· 1 wk ago
Information Technology$100k/yrapply on gdmissionsystems.com