Rupert Bedford
Experience
Staff Software Engineer, nPlan — London — 04/2021-Present
- Contributed to the rewrite of the forecasting algorithm, allowing simulations to be run in parallel using NumPy.
This allowed clients to see their results in minutes instead of hours, as well as enabling nPlan to work with
larger construction companies with more complex schedules.
- In partnership with the other staff engineer, responsible for: the evolution of the system architecture, encouraging the team
to write and share feedback on design documents, improving testing and reliability standards.
- Led a cross-functional team, automating the process of identifying risks and opportunities in schedules.
This allowed users to self-serve in the product and reduced the amount of manual work needed for each client engagement.
- Later, I led the platform team responsible for: observability and infrastructure tooling (OpenTelemetry, Grafana Cloud, Crossplane), developer experience, and the core microservices used as a foundation for the rest of the product.
- Line manager for three software engineers working in product and research teams.
Staff Software Engineer, Babylon Health — London — 10/2016-04/2021
- 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
clinicians to gather requirements and build prototypes.
I also built internal web apps, used by clinicians and epidemiologists, to create
and validate the probabilistic graphical model.
- I led 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 customising 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 led 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 led 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
- Improved malware detection capabilities, particularly JavaScript exploit kits.
- 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
- Used PhantomJS to add JavaScript evaluation to the anti-phishing system.
- Rewrote the web interface for managing phishing feeds.
Education
BSc Computer Science, University of Bristol — 2009-2013
- First Class Honours.
- 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).
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
Software Engineering
- I enjoy contributing across the stack, although I have been focused on backend projects the last couple of years.
- The main languages I have worked with professionally are: Python, TypeScript/JavaScript, Go, and Perl (!).
- For observability most of my experience is with: OpenTelemetry, Prometheus, Grafana, Sentry and some NewRelic and Kibana in the past.
- 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
- Running, cycling, and swimming.
- Home automation and tinkering with Raspberry Pis.
- Running the website for Chichester Stroke Club who are a charity providing support to stroke survivors and their families.