- CTO and Lead DeveloperSea Level Research, Ltd.2014 - 2015
- Developed a RESTful API using Django REST Framework 3.
- Built a mobile-first front-end using React.js and Bootstrap 3.
- Configured back-end machines with Ansible, deployed from Jenkins.
- Automated API deployment using Heroku and PostgreSQL.
- Carried out customer discovery with Liverpool Pilots then managed and prioritized the product backlog.
- Built the entire front- and back-end stack for an electronic tide tables application.
- Data Scientist/Software EngineerScaperWiki, Ltd.2013 - 2014
Technologies: Python, Linux, SQLite, Requests
- Built data scrapers and aggregators, pulling, cleaning, and normalizing data from awkward sources.
- Developed reusable helper libraries and new tooling to speed up development and ease the maintenance burden.
- Introduced the team to unit testing and test-driven development.
- Worked with investigative journalists to acquire and aggregate thousands of company records, supporting a corruption investigation.
- DeveloperGovernment Digital Service (UK)2013 - 2014
Technologies: Django, Flask, Python, PostgreSQL, MongoDB
- Introduced my team to Django, kicking off the Stagecraft project which allows non-technical users to create new dashboards and achieve scale.
- Used my experience of scraping poor-quality sources to build reliable collectors for government data.
- Maintained a Linux web stack with Varnish, nginx, Gunicorn, Django/Flask, MongoDB, and PostgreSQL.
- Improved reliability and repeatability with continuous integration scripts for Jenkins & Travis.
- Built automated tests for a Flask/MongoDB storage back-end system.
- Software EngineerBAE Systems Applied Intelligence2011 - 2013
Technologies: C++, Boost, Python, TCP, libpcap, Wireshark
- Developed high-speed C++ software using STL and Boost and targeted at 64-bit Linux.
- Ported and refactored a legacy C application into modern C++ with STL, Boost, and Protobuf.
- Developed a C++ libpcap application to inspect NAT sessions.
- Created an automated test harness in Python to inject test data into our C++ applications.
- Worked day to day with Wireshark, inspecting protocols such as TCP, SSL/TLS, and FTP.
- Software EngineerJF Machines, Ltd.2009 - 2009
Technologies: Python, PyQt, C, Arduino, Python Imaging Library (PIL)
- Built an entire operator user interface for PicoColour digital printing press using Python and PyQt.
- Built an ink system controller using Arduino to replace conventional Programmable Logic Controllers (PLCs).
- Created image preparation software, integrating with Ghostscript, ImageMagick, and Python Imaging Library.
- Researched and created image manipulation "screening" techniques to improve print quality.
- Created a high-speed C++ image processing module in with Cython interface for use in Python.