Job Description
System Software Engineer
Role Summary
The System Software Engineer designs, develops, integrates, tests, and debugs system-level software. This work supports the core software platform for Automated Test Equipment (ATE). Working within an established architecture, this role delivers high‑quality, production‑ready software components that contribute directly to the performance, reliability, and functionality of the platform. You will work across a broad technical spectrum ranging from modern user‑facing GUI development to the core system internals that power the Unison platform.
Responsibilities
Software Development & Integration
- Implement and optimize system and platform software according to defined architecture and requirements on a Linux-based system.
- Integrate modules into the core platform and support system validation.
- Support modern UI development using tools such as Node.js, Vue.js, TypeScript, and Qt 5.
- Document implementation details and interfaces to support maintainability and long‑term reliability.
Debugging & Testing
- Diagnose and resolve software defects using code‑level debugging, profiling, and analysis tools.
- Develop and maintain automated unit, integration, and system‑level tests.
- Participate in code reviews and ensure adherence to engineering best practices.
Required Qualifications
- B.S. or higher in Computer Science, Computer Engineering, Electrical Engineering, or equivalent experience.
- 3+ years professional experience developing system‑level or platform software.
- Strong modern C++ skills including advanced template usage, C++20 features, memory‑safe programming practices, and familiarity with the Boost libraries.
- Experience developing and debugging software on Linux (AlmaLinux / RedHat preferred).
- Hands‑on experience using Podman (preferred) or Docker in development workflows.
- Familiarity with Git, GitHub, CMake, Conan, CI pipelines, and Agile processes.
- Strong problem‑solving skills and ability to collaborate effectively in a team environment.
Preferred Qualifications
- Exposure to semiconductor equipment or hardware‑adjacent systems.
- Experience supporting customer‑facing software.
- Experience with the Rust language.