Freelance programmer with over two decades of experience developing high quality software using a wide range of technologies.
I have extensive experience with Python in particular but am happy to work with whatever is the best tool for the job. I have a strong background in systems development and optimisation. I am confident with Linux environments and am experienced with web development (mainly back end).
My most recent projects have been with universities and knowledge based institutions, developing research tools and digital preservation systems, however I am open to opportunities of all kinds. I enjoy working with intelligent and thoughtful people who value and uphold high standards and I appreciate the opportunity for my work to have an impact.
- Python (2 and 3), Django, Flask
- Linux / Unix command line, GNU tools, bash, server admin
- Task management and scheduling - RQ, celery
- RESTful web services (Django Rest Framework)
- SQL databases (PostgreSQL, MySQL, SQLite, Oracle)
- AWS (S3, lambdas)
- API integrations - Twitter, GitHub, OAuth
Tools & Techniques
- Agile, Scrum, TDD, BDD, CI
- Testing - tox, pytest, webtest, selenium, mocking
- Collaborative tools - Trello, Jira, github, GNU screen
- Remote working, pair programming, peer code review
- Sphinx/RST documentation
- Source control - git, mercurial, Subversion
- Deployment - fabric, ansible, puppet
- Cloud tech: docker, docker compose, AWS.
Archivematica - Digital Preservation (2017-2020)
Archivematica is an open source digital preservation platform which allows organisations to build and customize preservation workflows. I worked both directly with Artefactual on core functionality and with some of its users to create bespoke plugins and extensions.
- Worked with the Wellcome Trust to build a custom storage plugin to interface with Wellcome storage service
- Created AWS lambda to initiate transfers from S3
- Improved S3 browse and transfer functionality
- Collaborated with Artefactual to upgrade components to Python 3
- Contributed numerous bugfixes to Archivematica
- AWS deployments using Terraform, ECS, Docker
- Worked on Archivematica components of JISC RDSS (now https://www.jisc.ac.uk/preservation)
- Added Django authentication plugins for Shibboleth, LDAP and OIDC / Azure
Turing Institute - Data Safe Haven (2018)
Built a Django-based webapp to manage secure research environments for data scientists.
University College London - Cardiac Electrophysiology Web Lab (2017-20)
Web Lab is a platform to support the use and development of cardiac electrophysiology models, developed as a collaboration between Oxford, UCL and Nottingham universities. I initially carried out a feature-complete Django rewrite of a Java-based web interface, creating a git-based backend for model and protocol iteration, and later returned to add new functionality to support work around fitting models to datasets.
Worked fully remotely on Django-based legal practice management software, fixing bugs and adding new features including auditing and logging tools.
University College London - Research Software Dashboard (2015-17)
Worked alongside Research IT Services building RSD Dashboard, a tool for sharing and discovering the university’s research software. This was full stack Django development of a brand new product, seen through from initial development to launch. I was the sole developer, collaborating closely with research software developers and providing fortnightly demos. I originally worked on Dashboard for 9 months, returning a year later to add further improvements.
Technical refresh of Pointbank, a corporate incentives platform built in Django. My key contributions included rebuilding the front end with Sass for improved extensibility and easy rebranding, and developing an activity feed based on the Activity Streams standard. I was the sole developer on this platform, working remotely and meeting the client for fortnightly demos.
BBC Weather (2011-12)
Development of the BBC Weather website, working on highly visible components including the daily forecast tabs and dynamic weather maps. Building the front end and middle layers, I worked closely with the service layer team to define RESTful interfaces, adding optimisations for quick page load and minimal impact on back end services. After an initial three month contract I returned twice to add further improvements.
- Potato (2014-2015) - Back end development using Django and Google App Engine
- Paper Shaker by PhotoBox (2012–2013) - Front end for PhotoBox’s personalised card store
- BBC Knowledge (2010-11) - Nature, history and science websites.
- Linden Lab Billing System (2010) - Scalable Django services for Second Life billing engine. Linux scripting / admin, TDD, pairing and peer code review.
- BBC Social (2008-9) - Prototyping social and personalisation features for the BBC platform. RESTful webservices, Twitter (OAuth) and Facebook integration.
- EMMA (2007-7) - feature development for medical management system which is now the Qinec platform
- Volantis Systems Ltd (2005-6) - building bespoke Java/J2EE/Struts mobile websites
- Mintel International Group Ltd (2003-5) - Unix / web development with C++, XSLT, HTML, Python. Wrote a discussion / collaboration engine, implemented significant indexing improvements to inhouse search engine.
- Albany Software Ltd (2001-3) - Multi-platform C++ development of business software core components. Improved inhouse database query speed by a factor of several hundred.
- Gee Broadcast Systems Ltd (1999-2001) - C++ development of bespoke broadcast data display software for sports results systems and on screen timers.
Open Source / Community
- I have contributed to various open source projects - please see my Github profile for details.
- Volunteered for Django Girls, a series of workshops aimed at encouraging more women to learn to code. I contributed to the tutorial and website, organised workshops at PyCon Namibia and PyCon UK and coached at several events.
- I have spoken at conferences all over the world, on various topics. Please see my work page for full details.
- Open University (2000-2004) BSc(Hons) Mathematical Sciences - First Class Honours
- A-Levels (1997) - Mathematics, Physics, Chemistry, Biology - all Grade A
- 9 GCSEs (1995), including seven at grade A/A*