Apply Now
Location: Santa Clara, California (CA)
Contract Type: C2C
Posted: 8 hours ago
Closed Date: 03/06/2026
Skills: C / C++ programming, Linux
Visa Type: Any Visa

Job Title: C++ Software Engineer (Contractor) – Linux OS

Location: Santa Clara, CA onsite

Long Term Contract

 

Role Summary

We are seeking an experienced Linux Software Engineer (Contractor) to work on a wafer inspection system, with a primary focus on integrating application software with Linux device drivers.

This role does not involve Linux kernel or device driver development. Instead, the engineer will focus on Linux user-space C/C++ development, improving software architecture, robustness, and maintainability while integrating with existing drivers.


Key Responsibilities

  • Review and analyze existing Linux C++ application code flow, architecture, and interaction with Linux device drivers.
  • Integrate and maintain application-level interfaces with existing Linux device drivers.
  • Understand and reassess legacy assumptions related to driver interaction, sequencing, timing, data flow, and error handling.
  • Refactor and enhance user-space C/C++ software to improve clarity, scalability, and long-term maintainability.
  • Make design and architectural improvements to existing software components.
  • Work on complex issues where system behavior and data require deep technical analysis.
  • Ensure designs, code, and unit tests are robust, scalable, and future-proof.
  • Debug and resolve issues at the Linux user-space / device-driver interface boundary.
  • Collaborate with system, driver, and application teams to validate end-to-end functionality.
  • Support integration testing, regression testing, and lab bring-up activities.


Required Technical Skills (Must Have)

  • Strong experience with Linux user-space software development.
  • Proficiency in C / C++ programming.
  • Solid understanding of Linux OS fundamentals (processes, memory, threading, I/O).
  • Hands-on experience integrating applications with Linux device drivers.
  • Familiarity with user-kernel interaction mechanisms such as:
  • ioctl
  • mmap
  • shared memory
  • sysfs
  • Strong debugging skills using GDB, logs, and Linux diagnostic tools.
  • Experience refactoring legacy code and porting functionality across codebases.