Staff Software Engineer, Babylon Health — London — 10/2016-Present
- I joined Babylon as the first engineer on the symptom checker team.
The chatbot asks the patient about their symptoms until it is confident in a triage and possible conditions.
- For the first 6 months, I worked with a small team of data scientists and
doctors gathering requirements and building prototypes.
The prototypes were used in demos to investors and also in a BBC Horizon documentary.
I also built internal web apps, used by doctors and epidemiologists, to create
and validate the probabilistic graphical model.
- I lead the engineering work which included designing the system architecture,
productionising research code, and provisioning infrastructure.
- The product launched in the UK in January 2018.
The rest of the year was spent scaling the system for more traffic, localisation for different regions, and customisation for partners.
I helped grow the team to 10 engineers and mentored new engineers with their first projects.
I was also responsible for the engineering roadmap where we adopted an RFC process.
- In 2019, I lead projects to automate the building and validation of our AI models.
Previously models were built and validated on data scientist's laptops which was obviously very time consuming and error prone.
The validation was automated using Argo workflows running on a k8s cluster.
A web app written in Go allowed data scientists to run experiments, and an API allowed other processes to trigger jobs.
The project enabled the team to localise the system for countries in SE Asia and freed up data scientist's time to work on product improvements.
- In 2020, I lead another project to automate the E2E testing of chatbot conversations.
Previously the tests were run manually which was a bottleneck in the deployment process.
The quality engineers in the team used the framework to write test cases in YAML, while another software engineer and I would iterate on the framework to add features based on their feedback.
Automation of the tests saved a day of manual testing in each release.
- In 2021, I moved into an SRE role where I am responsible for the reliability of four products in production.
We built our monitoring around the NewRelic platform and provisioned it using Terraform.
I organised a fortnightly SRE guild to improve production awareness.
I also worked with the product teams to write synthetic tests covering their main user journeys.
- At Babylon I work with a wide range of languages and technologies but the main ones are: Python, Kubernetes, PostgreSQL, CircleCI, Terraform, and Azure DevOps.
Systems Developer, UK Renal Registry — Bristol — 06/2014-10/2016
- Developed an open-source research database for rare kidney diseases used across the country by the NHS and universities. The application was built with Flask, PostgreSQL, SQLAlchemy, pytest, Celery and AngularJS.
- Incremental improvements of legacy Python codebase - adding tests and documentation.
- Automation of repetitive processes across the business. Introduced Ansible for the management of production servers and development VMs.
Internet Services Developer, Netcraft Ltd. — Bath — 05/2013-06/2014
- Responsible for developer recruitment including University events, code reviews and interviewing. Organised an evening of talks for 30 students and teachers taking part in the National Cipher Challenge.
- Ran the monthly Web Server Survey and produced the accompanying analysis.
- Responsible for enhancing and maintaining existing systems mainly in Perl.
- Experience with CentOS and configuration management using Puppet.
Internet Services Developer Intern, Netcraft Ltd. — Bath — 07/2012-09/2012
BSc Computer Science, University of Bristol — 2009-2013
- First Class Honours.
- First Year (71%), Second Year (75%), Third Year (73%).
- Netcraft Prize for Top 10 2nd Year Students in Computer Science.
- Modules included: Advanced Algorithms (84%), Introduction to Machine Learning (88%) and Image Processing and Computer Vision (79%, 1st in class).
- Team leader for second year audio streaming project.
Bishop Luffa School, Chichester — 2002-2009
- A Level - Maths A, Physics A, Computing A, Geography (AS) A.
- GCSE - 7 A*, 4 A, including Maths and English.
Skills and Interests
- I enjoy contributing across the stack, although I have been focused on backend projects the last couple of years.
- For observability most of my experience is with: NewRelic, Prometheus, Grafana, and Kibana.
- I've a good knowledge of Docker, running applications on k8s, and provisioning infrastructure with Terraform.
Earlier in my career I ran applications on bare metal Linux servers.
Outside of Work
- Swimming, cycling, running.
- Home automation and a somewhat unnecessary k8s cluster for fun.
- Running the website for Chichester Stroke Club who are a charity providing support to stroke survivors and their families.