Foresite Labs Fl2024 006

Senior Software Engineer

San Diego, California, United StatesFull timeSenior$146,000 - $155,000 / yearPosted 12 days ago
Apply on Foresite Labs Fl2024 006 →

Sign into see who you know at Foresite Labs Fl2024 006.

SENIOR SOFTWARE ENGINEER

Location: San Diego, CA

Job Type: Full-Time

Salary: 146K – 155K

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.

You will work closely with hardware, firmware, algorithm, and application engineers to take instrument subsystems from prototype to production.

WHAT YOU’LL DO

EMBEDDED & APPLICATION SOFTWARE DEVELOPMENT

• 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

• Defi...