MCPNew: now works with Claude & AI assistants
foresite-labs-fl2024-006

foresite-labs-fl2024-006

Senior Software Engineer

Role

Senior Software Engineer

Job type

Full-time

Found on Mokaru

2 days ago

Share this job

Salary

Not disclosed by employer

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

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.

Resume ExampleCover Letter Example

Explore more