Contract lead developer
Contracts - Bank of America, Youview.co.uk, Cmed, BskyB 2013 - current
- Developed a system that transformed Tier-1 investment bank’s transaction reporting from being a significant regulatory risk, to being awarded most accurate high-volume transaction reporting firm by Unavista in 2018.
- Real-time MiFID II post-trade & transaction reporting engine using python and numpy. Generating millions of daily reports from tens of millions of events, joining multiple external datasets and running thousands of rules. Average report published in 80ms. One-click auditable per-field lineage documentation generated by static analysis of rules.
- Designed and implemented a full-stack system for self-service machine learning anomaly detection, based on streaming datasets. Working with ML expert to build intuitive, guided interface designed to be used by non-technical SMEs. Using scipy, sklearn, pandas, parquet, d3 and ag-grid. Detected systemic issues in upstream systems causing significant data quality issues.
- Wrote highly optimized Cython Avro serialization library & recursive Python JIT to enable use of python at required throughputs.
- Revolutionized problem analysis in the department by implementing novel UI for visualising trade lifecycles, exposing complex timing based issues in an easy-to-discover interface.
- Brought in to troubleshoot and performance tune problematic Objective-C IOS app. In two days was able to deliver 5x performance gain in primary bottleneck. Delivered design plan for larger architecture improvements.
- Worked in a variety of agile & scrum teams, from one to 15 members
Tech Lead (Head of Backend) - onefinestay 2017
- Successfully led complete rewrite of website backend. Handling 3x inventory, with real-time feeds from external systems, using graphql. Results: improved performance, reduction in operational issues & support. Project delivered in two-month deadline
- Implemented novel flask based graphql interface using runtime automatic schema generation using type hinting. Advanced Postgresql based pricing calculation removed need for slow, high-maintenance search indexes.
- Managed geographically distributed backend engineering team
Software Engineer - Cmed Technology 2008 - 2012
- Technical lead and engineer for an integration project that formed the nexus of a pivotal eSource trial that gained recognition from Microsoft, the FDA, SCDM, and the board of a top-tier Pharma company
- Tech lead & Architecture for Django based web UI frontend. Replacing existing flagship UI. Handling clinical trial data, from scratch. Produced Design & Functional specifications that passed MHRA audit.
- Product Management for major project, providing mockups, design specs and technical guidance to dev teams.
Web Development - Contract 2005 - 2008
- Bespoke web site design. Web service and filtering technologies developed in PHP, C and C++.
- Custom message-filter based MS Exchange email keyword scanning in C++ using Regex and Aho-corasick.
I try not to focus too much on particular technologies. Other factors typically are more important than which language or library is chosen. However my experiences tend to center around:
- Python cython, django, flask, sqlalchemy, most libraries
- Swift since IOS 4, games and business app
- Rust, GO, Ruby, R Used to varying amounts
- Postgresql, MySQL, MSSQL query optimization, indexing, automated schema management
- NoSQL Redis, AMPS, Memcached, Elasticsearch & Kibana
- C, C++ Ansi C, C99, C++11, C++14, header-only libraries
- libfann, Tensorflow classic neural-network and back-propagation training
- aws, docker, nginx, appengine, lambda Wide variety of CI, CD, and infrastructure tech
PyTubes, fast data loading - 2018-03-05
A C++ & cython library for data load pipelines in Python
Glitchtext - 2017-08-10
Simple iOS app that uses unicode alternate forms to render text with childish effects applied
The second video game for the Micro:bit in Rust - 2017-05-22
bbc micro:bit, Rust and an OLED display
Building a botnet on PyPi - 2017-05-19
Reporting & fixing a potential problem with pypi
The First Video Game on the BBC Micro:bit - 2017-02-27
bbc micro:bit, micropython and an OLED display
Neural Network Roman Numeral Calculator - 2017-02-27
Tensorflow trained neural network to perform addition on Roman numerals (Uses AWS Lambda, so may be slow first time)
Watching The Matrix using a Raspberry PI - 2016-10-02
On a $2 OLED display
Playing Star Wars on the ESP8266 with micropython - 2016-03-25
Writeup of a microcontroller experiment
US10346139B2 - 2016-02-23
Patent for rules engine developed for large client
There is no such thing as stateless - 2015-09-23
An opinion piece trying to explore state management in businesses
How Feminist Programming Has Already Happened - 2013-12-18
Exploring how feminist ideals are represented in existing languages
Beyond Webdriver - 2013-12-11
Ideas on a better web-testing framework
Visualiser for various sort algorithms - 2013-08-19
Written in JS, with a retro windows 95 UI
Printman, the world's slowest game of pacman - 2013-03-19
Could be played on the berg littleprinter, 1 move per day.
Selenium automation - 2013-03-16
Using selenium to play breakout on google images
Winning team google hackathon (placeme) - 2013-01-26
1-day hackathon local data-visualisation app
Flying the Mandelbrot Set [HD] - 2013-01-25
HD version of mandelbrot zoom
Blazing fast positive integer set implementation for python - 2013-01-21
Arbitrary length page-compressed bitfield using Cython
Generalized Sierpinski Triangle generator - 2012-11-11
Written in JS + Canvas, with a retro windows 95 UI
Winner of several categories at Hacked.io hackathon - 2012-07-23
2-day hackathon, our two-person team won two categories
Flying the Mandelbrot Set - 2009-01-01
Distributed multi-precision calculation on comodity hardware to make deep-zoom mandelbrot images