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