Software Engineer - Test Systems & Automation

Ouster, Inc.
San Francisco, CA, United States
2 months ago
Apply on dice.com
Prepare application

Role details

Contract type
Permanent contract
Employment type
Full-time (> 32 hours)
Experience level
Experienced
Experience required
3 years minimum
Compensation
$107,000.0 - $150,000.0
Working hours
Regular working hours
Job source

Tech stack

Testing (Software) Abstraction Layers Computer Vision Automation of Tests Unit Testing Software Quality Databases Computer Engineering Data Systems Software Debugging Software Design Patterns Linux
+26 more
DevOps Fault Tolerance Python (Programming Language) PostgreSQL MariaDB Modbus Modular Design OpenCV Software Construction Software Engineering Verification and Validation (Software) SQLite Data Streaming TCP/IP Test Data Digital Twin Data Logging Data Processing Multithreading Test-Driven Development (TDD) Git Information Technology Hardware Infrastructure Lidar Data Pipelines Docker

Job description

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., Test Software Development & Abstraction

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

Data Pipelines & Station Reliability

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

Automation & Test Rigor

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

Requirements

  • 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.
  • DevOps & 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 optical components, cameras, laser safety, or computer vision libraries (OpenCV).
  • Experience supporting manufacturing lines or hardware prototyping cycles in electronics, automotive, or robotics industries

Benefits & conditions

The base pay will be dependent on your skills, work experience, location, and qualifications. This role may also be eligible for equity & benefits. ($107,000 - $150,000)

We acknowledge the confidence gap at Ouster. You do not need to meet all of these requirements to be the ideal candidate for this role.

Ouster is an Equal Employment Opportunity employer that pursues and hires a diverse workforce. Ouster does not make employment decisions on the basis of race, color, religion, ethnic or national origin, nationality, sex, gender, gender-identity, sexual orientation, disability, age, military status, or any other basis protected by local, state, or federal laws. Ouster also strives for a healthy and safe workplace, and prohibits harassment of any kind. Pursuant to the San Francisco Fair Chance Ordinance, Ouster considers qualified applicants with arrest and conviction records for employment. If you have a disability or special need that requires accommodation, please let us know.

Apply for this position

This job is hosted externally. Click below to view the full posting and apply.

Apply on dice.com
Prepare application

Good distractions

Talks and stories from around this role — technically off-topic, practically not.

6:21 min

Investigating push inefficiencies with upstream Git experts

Jonathan Creamer · Coffee With Developers

2:17 min

Validating lidar sensor models against real noise

Ulrich Wurstbauer +1 · LIVE

52 sec

Running persistent Linux environments directly on Windows

Ben Breard Ben Breard · World Congress 2025

3:09 min

Balancing data science skillings alongside systems engineering rigor

Nico Schmidt · LIVE

56 sec

Favorite git commands and the importance of patch commits

Eileen Uchitelle Eileen Uchitelle +1 · Coffee With Developers

10:40 min

Evaluating automotive software architectures and backend technologies

Georg Kühberger +1 · LIVE

Videos

See all

Related articles

See all