Embedded Software Engineer

KLAMilpitas, CA
Onsite

About The Position

We are seeking a highly motivated Embedded Software Engineer to join our team within the RAPID division. In this role, you will take end-to-end technical ownership of embedded software that powers our reticle inspection systems, with a strong focus on high-speed data capture pipelines, and low-level hardware interfaces. You will work hands-on across the stack—from Linux user space to Linux kernel drivers—including PCIe device bring-up and driver development, and you will influence design and implementation direction through strong engineering judgment and design reviews. This is a hands-on, Individual Contributor role. You will drive technical decisions, raise the bar on engineering quality, and collaborate closely with cross-functional teams to deliver reliable, production-grade embedded software.

Requirements

  • 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.

Nice To Haves

  • Hands on experience and laboratory exposure to electrical, mechanical and optical measurement instruments
  • Experience in semiconductor fab operations/manufacturing technology.
  • 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.

Responsibilities

  • 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.
  • 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.
  • 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.
  • Partner with mechanical, systems, electrical, optics/opto-mech, algorithms, and applications teams to deliver integrated solutions from concept through production.
  • Share expertise through design reviews, debugging sessions, documentation, and lightweight coaching to help the team deliver consistently high-quality software.
  • 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.
  • Troubleshoot complex system-level issues across hardware, kernel, and user space; optimize performance-critical software and improve system reliability.
  • Contribute to technical planning, estimation, and architectural tradeoffs.
  • Participate in all stages of development, including design, implementation, integration, deployment, testing, and field troubleshooting.

Benefits

  • medical
  • dental
  • vision
  • life
  • 401(K) including company matching
  • employee stock purchase program (ESPP)
  • student debt assistance
  • tuition reimbursement program
  • development and career growth opportunities and programs
  • financial planning benefits
  • wellness benefits including an employee assistance program (EAP)
  • paid time off
  • paid company holidays
  • family care and bonding leave
© 2026 Teal Labs, Inc
Privacy PolicyTerms of Service