Python Software Engineer
London, White City (with flexible working)
£60 - 90,000, depending on experience
We're Mytos and we build machines that automate the growing of human and animal cells. Our work has a massive real-world impact. We help teams in drug development and cell therapy accelerate their research so that drugs and new cures can get to patients earlier.
You don’t have to be wearing a lab coat to get the most out of working here though. We’re a low-ego, high-urgency team that spans software, hardware and biology. Our product encompasses mobile apps, hardware controllers, image processing and the latest cloud computing technologies. For us, software runs from the cloud to the firmware. And as we’re sure you can imagine, this creates all sorts of opportunities to grow your skills with us.
We’re working hard on one of the last highly manual processes in biotech, and it all stems from taking a human-centred approach to physical product design. Our founders, Ali and Ignacio, kept hearing about how time consuming cell growth was, and that many of the existing robotic processes didn’t solve the underlying problems - they just replaced the human with a robot. Our approach meant we saw the underlying user need. So rather than replicating the existing lab process, we built a simple new device. Our users can now grow and monitor cell batches from the cloud, allowing them to step away from the pipette and focus on the science.
This is an opportunity to work on projects at the interface of software, hardware and biology.
When you join us, you’ll get to:
- Lead architectural decisions for how services on the device communicate with one another any additionally how they communicate with the cloud.
- Define best practices for writing device software, considering common failure modes such as power outages and internet troubles.
- Work closely with firmware, electronic and mechanical engineers when writing the software for subsystems contained within the device.
- Design algorithms for processing image data on the edge in order to allow the device to make informed decisions about which action to perform.
- Write software to interface closely with the fluidic control system for closed loop control when pumping of fluids and simulation of fluidic operations.
- Improve how we test and deploy updates to the device, including making updates to our AWS ARM builder and GitHub Actions which deploy to the device.
- Be involved in growing the software engineering team, with the opportunity to take the role of hiring manager when bringing other engineers onto the team.
- Participate in and contribute towards improving the software engineering process at the company including standups, sprint planning and retrospectives.
- Mentor fellow engineers to teach them how to approach problem solving and architecture planning, with focus on making the whole team high performance.
We’d love to hear from you if:
- You have experience with IoT messaging protocols such as MQTT or event driven architectures and the Async API initiative interests you.
- You've worked with embedded Linux and potentially used services such as BalenaCloud to ensure repeatable software environments on embedded devices.
- Projects you have worked on included capturing images using external camera sensors and analysing those images on the device they were captured.
- The prospect of optimising the available resources to run edge processing effectively excites you, including GPU acceleration with tools such as CUDA or Vulkan Compute.
- You are proficient in Python programming and are comfortable learning new languages (we use Python and TypeScript docker services on the Linux Device).
- You have had at least 5 years experience as a software engineer at companies building hardware products which have reached the market.
- You care about the performance of everyone on the team, including supporting previous organisations in being more agile in how they plan and deliver software features.
- You have actively mentored engineers you have worked with in order to help them perform the best and grow into incredible software engineers.
We use the following technologies:
- Frontend (Netlify): React, TypeScript, GraphQL, Storybook, MaterialUI
- Backend (AWS & Heroku): NodeJS, TypeScript, GraphQL, MongoDB
- Physical Device (on-premise): NodeJS, Typescript, FastAPI, Python, MQTT
- Firmware: C++, GTest, GMock, Bazel, Platformio
Our interview process is as follows:
- Introductory call with a Mytos team member (30 minutes)
- Take home Codility coding challenge (2 hours)
- Competency interview with a software engineer at Mytos (1 hour)
- Take home preparation for technical onsite interview (2 hours)
- Technical onsite interview (2 hours)
- Founder interview (1 hour)
We’re building a team that enjoys moving fast and not killing cells, strives for continuous improvement through learning from mistakes and is passionate about work that contributes to solving real world problems. We learn together, grow together and solve hard problems together.
We get very excited about meeting potential colleagues who share our enthusiasm for unconstrained innovation and understanding our users. Our benefits include options, 32 days holiday, pension, thoughtful colleagues and a lab in the Imperial College Innovation hub in White City, where you’ll be based (when not working remotely).