Software Engineer - Test Systems & Automation
Listed on 2026-06-27
-
Software Development
Python, Software Engineer, Software Testing, DevOps
At Ouster, we build sensors and tools for engineers, roboticists, and researchers, so they can make the world safer and more efficient. We've transformed LIDAR from an analog device with thousands of components to an elegant digital device powered by one chip‑scale laser array and one CMOS sensor. The result is a full range of high‑resolution LIDAR sensors that deliver superior imaging at a dramatically lower price.
Our advanced sensor hardware and vision algorithms are used in autonomous cars, robotics, industrial, and smart infrastructure applications (among many others). If you’re motivated by solving big problems, we’re hiring key roles across the company and need your help! Role Overview
Ouster is seeking a Software Engineer to build, optimize, and maintain our automated production test infrastructure. In this role, you will move beyond basic, linear automation scripting to develop clean, decoupled, and reusable software interfaces that connect our Lidar optical and electrical hardware to our data systems.
We treat manufacturing test infrastructure with the same algorithmic rigor and software standards as core product code. If you are a strong software developer who loves seeing your code interact with physical devices, optimize factory‑floor data pipelines, and drive software quality metrics, this role is for you.
Key Responsibilities Test Software Development & AbstractionDevelop Hardware Abstraction Layers:
Implement and scale Python‑based software wrappers to cleanly separate test sequence logic from lower‑level instrument drivers (e.g., power supplies, digital multimeters, spectrometers).Apply Modular Design:
Utilize modern software design patterns (e.g., Factory, Strategy, Wrapper) to ensure test code remains flexible, future‑proofed, and easy to maintain as instrumentation evolves.Maintain Code Quality:
Write clean, readable, and type‑hinted Python code. Actively participate in peer code reviews and maintain structured Git‑based development workflows.
Optimize Data Flow:
Implement and debug high‑volume data pipelines that package and stream local parametric test data securely into centralized manufacturing databases and execution systems.Build Fault‑Tolerant Code:
Write defensive software routines, including intelligent retry logic, exception handling, and local data buffering to prevent station downtime during intermittent network or server disruptions.Triage & Troubleshooting:
Analyze test station execution logs to systematically diagnose whether a failure on the line stems from a software bug, instrument communication dropout, or a genuine product defect.
Automate Test Sequences:
Develop multi‑instrument automated test workflows using concurrent or multi‑threaded Python concepts to minimize station cycle times.Software Validation:
Write unit tests and implement software mocking frameworks to validate the stability of your test code before deploying updates to a live production line.
Skills & Qualifications
Education:
Bachelor’s degree in Computer Science, Computer Engineering, Software Engineering, or a related technical discipline with a strong programming foundation.Professional
Experience:
3+ years of experience writing production‑grade software (ideally Python) interacting with hardware or processing data streams.Strong Python Foundation:
Solid proficiency in core Python, including a clear understanding of decorators, higher‑order functions, custom exceptions, and context managers.Instrument Interfacing:
Direct experience communicating with hardware instruments using standard protocols like SCPI, PyVISA, Serial (RS‑232/485), TCP/IP sockets, or Modbus.Dev Ops & Infrastructure:
Solid day‑to‑day comfort operating in Linux/Unix environments, utilizing Git for version control, and working with Docker containers.Data
Competency:
Practical experience writing and optimizing SQL queries (e.g., PostgreSQL, SQLite, or MariaDB) to handle high‑frequency logging.
Familiarity with Test‑Driven Development (TDD) or building software simulations/digital twins for hardware components.
Basic understanding of…
(If this job is in fact in your jurisdiction, then you may be using a Proxy or VPN to access this site, and to progress further, you should change your connectivity to another mobile device or PC).