CTO and Lead Developer2014 - 2015Sea Level Research, Ltd.
- 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 Engineer2013 - 2014ScaperWiki, Ltd.
Technologies: Requests, SQLite, Linux, Python
- 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.
Developer2013 - 2014Government Digital Service (UK)
Technologies: MongoDB, PostgreSQL, Python, Flask, Django
- 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 Engineer2011 - 2013BAE Systems Applied Intelligence
Technologies: Wireshark, libpcap, TCP, Python, Boost, C++
- 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 Engineer2009 - 2009JF Machines, Ltd.
Technologies: PIL, Arduino, C, PyQt, Python
- 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.