Skype | GitHub | Twitter
An experienced software engineer and systems operator. I am particularly interested in distributed systems, the many and varied ways in which they fail and the engineering approaches that can help increase their resilience.
IBM (formerly Cloudant)
January 2013 – Present
Providing engineering expertise across the Cloudant Database-as-a-Service technology stack with a focus on the reliability and performance of the core database and associated monitoring systems.
- Engineering lead for improving elasticity of Cloudant database clusters.
- Debugged, reproduced and fixed numerous of complex operational issues.
- Improved operability of the core database software (based on Apache CouchDB, written mostly in Erlang) by improving instrumentation, logging and operator interfaces.
- Maintained and extended the monitoring and alerting stack including the addition of custom alerts to the Clojure-based stream processing subsystem.
- Developed operational processes, tooling and documentation.
- Conducted investigations of production incidents with a view to understanding the contributing technical and human factors and developing appropriate mitigations.
University of Bristol
December 2010 – January 2013
Working closely with geographical scientists to parallelise landslide modelling software using Cloud and Grid resources and develop the necessary tools to manage, analyse and visualise simulation data.
- Developed a workflow and data management platform, based on Apache CouchDB, for managing landslide simulations and associated input and output data.
- Deployed and operated the platform on a locally managed BigCouch cluster.
- Carried out scalability and performance tests on the platform in order to find and remove bottlenecks.
- Analysed performance of landslide modelling jobs on different compute resources including the Worldwide LHC Computing Grid, Amazon EC2, and the university’s local HPC facility.
- Set up and maintained a data-intensive research facility, consisting of an Apache Hadoop cluster and a BigCouch cluster, using the Bcfg2 configuration management tool.
University Hospitals Bristol NHS Foundation Trust
IM&T Lead Specialist in Radiotherapy Physics
November 2007 – December 2010
Developing and maintaining in-house clinical software supporting Radiotherapy Physics activities and processes, using Python, Java and TCL on Linux and Windows platforms.
- Responsible for developing, testing, maintaining, integrating and troubleshooting systems running on mixed Windows/Linux/Unix platforms.
- Developed software in Python using the Numpy, SciPy and Matplotlib libraries to perform automatic corrections for light scatter in scanned radiochromic film images.
- Developed an interface that allows medical images and associated metadata stored in the DICOM format to be persisted in Apache CouchDB.
- Maintained and extended a comprehensive monitoring infrastructure based on Nagios.
April 2004 – November 2007
Responsible for providing engineering consultancy and project management services to clients primarily in local and regional government.
- Designed and implemented a number of technical proof-of-concepts for real-time traffic information delivery, using Java, MySQL and PHP.
- Managed the testing and development of an automated hard shoulder monitoring system which combined data from inductive loops, image processing systems and RADAR.
- Managed the trial and development of an information display system for use in regional traffic control centres.
- Application development with Erlang, Python and Clojure on Linux platforms.
- Development, operation, debugging and maintenance of distributed database systems.
- Communication of complex issues across geographically distributed teams.
- Unit testing, integration testing and performance testing.
- Version control with Git and Subversion.
- Configuration management of distributed infrastructure with Chef and Bcfg2.
2002 – 2003
MSc Computing (distinction)
University of Reading
1997 – 2000
BEng Electronic and Optical Engineering (2:2)
Apache Big Data Europe 2015 | CouchDB 2.0: The awkward bits
European GeoSciences Union 2012 | High throughput landslide modelling using computational grids
UK e-Science All Hands Meeting 2011 | High scale, distributed landslide modelling
Berlin Buzzwords 2011 | Landslides, couches and particle physicists
- Apache CouchDB committer
- Amateur jazz musician, occasionally seen performing at the East Bristol Jazz Club monthly jams
References available on request