Senior Software Engineer
Listed on 2026-09-05
-
Software Development
C++ Developer, Python, Software Engineer, Embedded Systems/ Firmware/ IoT
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 DoEmbedded & 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
- 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
- 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
- BS in Computer Science or Engineering with 5+ years or MS with 3+ years of professional software engineering experience building production systems
- StrongC/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 build systems (CMake, Make, or similar)
- Ba…
(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).