Senior Software Engineer
Listed on 2026-07-14
-
Software Development
Embedded Systems/ Firmware/ IoT, C++ Developer, Python, Unix/Linux
About The Role
We are a startup building complex, performance‑critical software and hardware systems at the intersection of instrumentation, algorithms, and data. We are looking for a Senior Software Engineer who is equally comfortable writing low‑level C/C++ for embedded targets and building higher‑level Python applications that tie a system together. You will write production code that spans from device‑level firmware interfaces up through orchestration software that coordinates the electrical, fluidic, and mechanical subsystems of a complex instrument.
This is a hands‑on engineering role for someone who likes working close to the hardware, enjoys making messy real‑world systems behave predictably, and takes pride in clean, well‑tested code.
Location: San Diego, CA |
Job Type: Full‑Time | Salary: 146 K – 155 K
- Write production‑quality C/C++ for embedded targets and resource‑constrained environments
- Build Python applications and services that orchestrate, monitor, and expose instrument behavior
- Develop and maintain device drivers, hardware abstraction layers, and communication interfaces (serial, USB, Ethernet, CAN, SPI, I2C)
- Bridge embedded subsystems and higher‑level application logic through clean, well‑defined interfaces
- Debug across the stack — from a misbehaving sensor or actuator up to an unhappy application thread
- Design and implement the software that coordinates electrical, fluidic, and mechanical subsystems into a working instrument
- Build state machines and control loops that move the system through complex, multi‑step protocols reliably
- Handle the realities of real‑world hardware — timing, failure modes, recovery, calibration, interlocks, and safety
- Define interfaces and contracts between subsystem controllers, the orchestration layer, and the user‑facing application
- Instrument the system so that when something goes wrong on a wet bench at 2 am, the logs actually tell you why
- Develop and deploy on Linux — both desktop and embedded
- Build and maintain Docker images and container‑ized workflows for development, testing, and deployment
- Manage build environments, dependencies, and reproducibility across developer machines and target hardware
- Debug system‑level issues involving processes, devices, networking, and resource contention
- Write code that other engineers can read, extend, and trust — clear interfaces, sensible abstractions, useful tests
- Use git fluently for branching, review, bisecting, and clean history
- Participate in code review as a thoughtful reviewer and a graceful author
- Build small, sharp tools that make the team faster — not large frameworks that slow them down
- BS in Computer Science or Engineering with 5+ years or MS with 3+ years of professional software engineering experience building production systems
- Strong C/C++ skills, including comfort reading and debugging existing codebases
- 5+ years of Python experience and proven ability to design, build, and ship application‑level software
- Hands‑on experience with embedded development — talking to real hardware, working with constrained environments, and dealing with the failure modes that come with both
- Hands‑on experience with application development — services, APIs, user‑facing tools, or orchestration software
- Strong Linux skills: comfortable on the command line, debugging system behavior, and working with build tool chains
- Solid git fundamentals and good code hygiene — clear commits, readable diffs, useful tests, careful reviews
- Comfortable with Docker and containerized development and deployment workflows
- Experience building multi‑component orchestration software for systems that combine electrical, fluidic, and mechanical subsystems (instruments, lab automation, robotics, manufacturing equipment, or similar)
- Experience designing state machines or control software for multi‑step physical protocols
- Comfort working alongside hardware, firmware, and mechanical engineers — and translating their constraints into software
- Experience with CI/CD pipelines and…
(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).