Foresite Labs

Senior Software Engineer

Foresite Labs$146K — $155K *
Information Technology
5 - 7 years of experience
Job Overview by Ladders

Qualifications

  • BS in Computer Science/Engineering (5+ years) or MS (3+ years) in software engineering
  • Proficient in C/C++ with skills in reading and debugging existing code
  • Over 5 years of Python experience in application-level software design and development
  • Experience with embedded development in constrained environments
  • Hands-on experience in application development, including services and orchestration software
  • Strong Linux command line skills and experience with build toolchains
  • Proficient in Git for version control with good code hygiene

Responsibilities

  • Develop and maintain production-quality C/C++ code for embedded systems
  • Create Python applications to orchestrate and monitor instrument behavior
  • Design and implement device drivers and communication interfaces for hardware
  • Coordinate the functionality of electrical, fluidic, and mechanical subsystems
  • Build and manage state machines and control loops for complex operations
  • Instrument systems for effective debugging and log analysis
  • Develop containerized workflows using Docker for development and deployment

Benefits

  • Flexible work hours and remote work options
  • Collaborative team environment encouraging innovative solutions
  • Opportunity to work on cutting-edge technology at a startup
  • Professional development opportunities and growth within the company
  • Health insurance and retirement plan options
Full Job Description
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
• 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
Engineering Hygiene
• 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
What We're Looking For
Required
• 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
Strongly Preferred
• 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)
Nice-to-Have
• 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)
What Success Looks Like
• 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

About Foresite Labs

Foresite Labs is a venture capital firm that invests in early-stage healthcare and life sciences companies. The firm was founded in 2019 by Jim Tananbaum, a healthcare entrepreneur and investor. Foresite Labs is a subsidiary of Foresite Capital, a leading healthcare investment firm. The firm's portfolio includes companies in the areas of biotechnology, medical devices, digital health, and healthcare services. Foresite Labs provides funding, strategic guidance, and operational support to its portfolio companies. The firm is based in San Francisco, California.
Learn more about Foresite Labs
Industry
Founded
2019

Similar Jobs

More Jobs at Foresite Labs

More Information Technology Jobs

Find similar Senior Software Engineer jobs: