Software Engineer (Backend) at Strateos
Menlo Park, CA, US
Strateos has developed the first robotic cloud laboratory platform for on-demand life science research by integrating laboratory processes, instruments and IoT technologies into a single user interface. Top ten pharmaceutical companies and emerging biotech companies use the platform to conduct efficient, reproducible and rapid experimentation from anywhere in the world. Most recently Strateos has been selected to partner with Eli Lilly to develop and operate an 11,500 square ft fully automated compound synthesis and bioassay system.
The SCLE [Strateos Common Lab Environment] team is responsible for implementing and maintaining the systems that schedule and dispatch experiments in our automated labs. We are seeking a Backend Engineer to join our dynamic team.
Scheduling is the process of converting a high-level description of an experiment (in the form of Autoprotocol) to a specific plan that can be executed at a particular facility. A single operation specified in Autoprotocol might entail a number of low-level commands that must be issued against multiple devices in the correct order, while the timing of these commands may have to satisfy certain requirements. We formulate a declarative model representing the operational constraints that the protocol must satisfy and then solve it to produce a schedule. Typical experiments we might schedule might have >10,000 variables and constraints, and our goal to find a setting of those variables that both (1) is valid and (2) minimizes the time required to execute the experiment. (The general formulation of most of these scheduling problems is known in the academic literature to be NP-hard, so we need some creative approaches to be able to schedule experiments and to do so reliably!)
Dispatching is the process of taking the execution plan (the schedule) and commanding all the devices in the lab facility to run each step when appropriate until the entire experiment is complete. However, it's famously said that "no plan survives contact with reality" and schedules are no exception. An experiment can deviate from its plan in any of a number of ways. Things as disruptive as a device going down, or as common as operations taking shorter or longer than their expected time, all require the system to compensate or replan future tasks on-the-fly to ensure that the scientist's biological intent isn't compromised. The dispatcher exposes a web interface, a dashboard that allows operators to monitor the status of the experiment (and the lab facility) in real time and to intervene if necessary.
SCLE development routinely includes:
- defining and implementing support for instructions, constraints and other abstractions that encode new types of scientific intent
- ensuring that scheduling (of a diverse set of protocols across a variety of lab hardware configurations) is correct and robust
- working with our scientists and operators to identify and define best practices for writing protocols that accurately capture scientific intent while being reliably schedulable
- making the system more performant and fault-tolerant and thereby allowing the modeling, scheduling, and dispatching of ever more complex protocols
Most SCLE code is in Scala, and we deploy to a combination of hosts that are distributed between AWS and the lab facility itself. The SCLE operator dashboard is a React app in Typescript. The components talk to each other using RabbitMQ.
- Fluency in at least one major programming language, e.g. Java, C/C++, or Python (Scala is a plus)
- Experience implementing distributed systems
- Knowledge of UNIX, system administration, networking, etc.
- Familiarity with cloud services, primarily AWS
- Strong analytical and problem-solving skills; the capability to take a high-level mission and translate it into action with minimal guidance
- At least two years of professional experience
- Willingness to travel to partner sites
- A challenging environment that will push you to grow and improve professionally, every day
- Opportunities to learn new technologies and fields, along with the freedom to work on hard technology and real science
- Competitive salary and meaningful equity
- Flexible vacation policy
- Medical, dental, and vision insurance
- Pre-tax commuter benefits
- Monthly gym stipend
- Lunch, dinner & unlimited snacks when in office
- Professional development budget
- 401(k) matching
Strateos is an equal opportunity employer