Senior Edge Engineer
Listed on 2026-10-12
-
Software Development
Software Engineer, DevOps, C++ Developer, Unix/Linux
Queue builds robots to fill prescriptions. Our machine is designed to take stock bottles of medication and produce counted, labeled vials, so that pharmacists and technicians can spend their time on patients. Our first product is built to work behind the pharmacy counter and to be operated by pharmacy staff.
About the RoleWe are building out the Edge squad: the engineers who write the software that runs on our machine and tells its hardware what to do. You own hard parts of that software end to end, from the links to the boards to the way a new version reaches a machine in the field and behaves there. On every path you own you build to one rule: when the machine cannot confirm a step, it stops safely and says why.
This is a senior-level role.
What You'll OwnHardware links — The edge software's side of the links to the motor board and the other controllers, over CAN, serial, USB and Ethernet: framing, timing, errors, reconnects and the tests that prove them. You set how they are built and tested.
Fill sequencing — The state machines that take a fill from the moment it reaches the machine to the moment the machine finishes or stops. You set how they are designed and tested.
Contracts at the boundaries — The contracts with the microcontrollers and the vision service. You version them and change them with the firmware and vision engineers, so that old and new versions work together through a release.
What the software needs from the image — The services, devices, bus settings and packages the edge software needs from the machine's Linux image. You make those changes with the engineers who own the image.
Field behavior — What the edge software reports from a machine in the field, how it is diagnosed from a distance, and its part in how a new version arrives and how it is rolled back if it fails. You build it with the platform and systems reliability engineers.
Fail-closed behavior — The rule on every path you own: when the machine cannot confirm a step, it stops safely and says why. You design the failure path first and prove it on the bench.
Day 30: You have built the edge software, run it against the boards on a bench, and merged changes through review. You can trace a fill through the state machines and name each point where it has to stop if a step cannot be confirmed.
Day 60: You own a hardware link and its contract end to end. You have made a change to the machine's Linux image with the engineers who own it, and run it on a bench machine.
Day 90: You have taken a change from design through a release to a machine on the bench, with its failure paths tested first. You hold a written plan for what the edge software reports from the field and how it is diagnosed from a distance.
Ownership — you have written production C, C++ or Rust on Linux and owned what you shipped, from the first design to the fault found in the field.
Hardware integration over buses — CAN, RS-485 and other serial links, USB. You have debugged a link with an analyzer on the wire when the logs and the hardware disagreed.
Real-time orchestration and state machines — you have sequenced motion, sensing and I/O where partial failure is normal, and you design the failure path first: when a step cannot be confirmed, the system stops safely and says why.
MCU boundary literacy — you understand how a microcontroller runs and what it exposes to a Linux host, and you have kept versioned device protocols with firmware working through change, for example a protobuf schema, a CAN message set or a register map.
Embedded Linux integration — you have done substantial work getting software running well on an embedded Linux system: its services, devices, start-up, configuration and updates,…
(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).