Senior Software Engineer

Foresite Labs, LLC
San Diego, United States of America
2 days ago

Role details

Contract type
Permanent contract
Employment type
Full-time (> 32 hours)
Working hours
Regular working hours
Languages
English
Experience level
Senior
Compensation
$ 155K

Job location

San Diego, United States of America

Tech stack

Abstraction Layers
API
Business Logic
C++
CANopen
Command-Line Interface
CMake
Code Review
Software Debugging
Linux
Device Drivers
Embedded Software
Ethernet
EtherCAT
Firmware
Python
Modbus
Message Queuing Telemetry Transport (MQTT)
Software Engineering
Delivery Pipeline
State Machines
GIT
FastAPI
Build Management
Information Technology
Code Testing
Production Code
Build Tools
Codebase
gRPC
Software Version Control
Docker

Job description

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.

You will work closely with hardware, firmware, algorithm, and application engineers to take instrument subsystems from prototype to production., * 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

Multi-Component System Orchestration

  • 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 2am, the logs actually tell you why

Linux & Containerized Workflows

  • Develop and deploy on Linux - both desktop and embedded
  • Build and maintain Docker images and containerized 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

Requirements

Do you have experience in Version control?, Do you have a Bachelor's degree?, * 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 toolchains
  • 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 build systems (CMake, Make, or similar), * Background in scientific instrumentation, biosensor platforms, lab automation, or medical devices
  • Experience with real-time or near-real-time control software
  • Familiarity with common embedded interfaces and protocols (Modbus, CANopen, EtherCAT, gRPC, MQTT, etc.)
  • Experience in regulated development environments (FDA, ISO, or similar)

Benefits & conditions

  • Instrument subsystems behave predictably, recover gracefully, and are debuggable when they don't
  • The orchestration software is something other engineers want to build on - not something they work around
  • Code you ship is reliable enough that the team trusts it, and clear enough that they can extend it without paging you
  • Hardware, firmware, and application engineers can move faster because of the interfaces and tooling you build
  • When a hard, cross-domain bug shows up, you are one of the people the team is glad to have on it

Why Join Us

  • Work in a dynamic, collaborative environment where innovation and scientific rigor are deeply valued
  • Join a seasoned, multidisciplinary team tackling high-impact problems at the intersection of science and engineering
  • Competitive compensation and equity package, comprehensive benefits, and flexibility to support work-life integration

We are an equal opportunity employer. We thrive on diversity and collaboration.

Apply for this position