Steve Stagg
Contract lead developer
About Me
A versatile technologist with broad experience across many industries, and deep knowledge of software engineering. My work has saved companies millions of dollars, enabled new strategic opportunities, and has repeatedly gained formal recognition from industry bodies.
I have a passion for understanding the true nature of complex problems, and finding the most appropriate solution that balances cost, speed, technical rigour, and business need.
I'm as comfortable defining strategy and technical architectures for large-scale enterprise initiatives, as I am working with individual requirements to deliver small targeted solutions.
Experience
Contracts -
Bank of America, Youview, Mosaic FM, BskyB, others
2013 - current
- Developed the 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. Since then this system has saved millions of dollars by avoiding compliance penalties across many global jurisdictions.
- Real-time regulatory post-trade & transaction reporting engine using Python and numpy. Generating 10s of millions of daily reports from hundreds 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 automated 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.
- Developed state of the art hybrid NLP processing platform using Rust core with PostgreSQL plugin and Python library to allow complex user-driven NLP querying over large corpora of text. Spacy & LLM based processing performed with AWS Batch, with analysis in Jupyter and SQL (Tableau/Power BI).
- Worked in a variety of agile & scrum teams, from sole-developer to 10-developer teams within larger departments.
Tech Lead (Head of Backend) -
onefinestay
2017
- Successfully led complete rewrite of complex website backend, to integrate multiple companies inventory and order management systems and support 3x inventory. Implemented using graphql and real-time feeds from external systems. Results: improved performance, reduction in operational issues & support. Project delivered successfully within 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.
- Recorded, printed, typeset, synthesized, published, and nationally sold school music book for local musician.
Technologies
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
- Rust Fast data processing, typically integrating with Postgresql, or Python using Py03 and pgrx
- Swift since iOS 4, games and business app
- GO, Ruby, R Commercial experience
- 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
- polars, pandas, numpy, Jupyter notebooks, spark large-scale enterprise data processing
- libfann, Tensorflow, PyTorch, llama.cpp, spacy ... classic neural-network and back-propagation training
- aws, docker, nginx, appengine, lambda Wide variety of CI, CD, and infrastructure tech
Log
-
Cavro: Avro serialization library2023-10-01
A cython library for decoding/encoding AVRO data, written to be a fast correct alternative to existing libraries with performance limits.
-
How to steal secrets from developers using WebSockets 2020-05-20
A minor security vulnerability exposed by WebSockets
-
PyTubes: fast data loading 2018-03-05
A C++ & cython library for data load pipelines in Python
-
Glitchtext2017-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 Calculator2017-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 algorithms2013-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 generator2012-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
Education
Christ's Hospital School -
1998 - 2004
Horsham, UK. Three A-Levels, English, Maths, and Physics.
Training
Quanta Introduction to C++May 2005
CMI Introduction to ManagementJun 2005