The distributed-systems story
Everything tagged distributed-systems across the whole site — work, projects, talks, and writing.
Positions
Senior Software Engineer, Processing Platform · Alert Logic
May 2015 — Nov 2017
- Erlang engineer on the original Processing Platform: a distributed-Erlang cluster over Riak doing big-data packet and log processing for real-time exploit and vulnerability detection
- Architected and developed its ground-up replacement from the lessons of the first: serverless Erlang on AWS, with a custom bootstrap that brought an Erlang VM up inside a Lambda function and kept it warm for thirty minutes, fed by Kinesis and SQS, so capacity scaled horizontally with the firehose
- Mentored an intern through building a GraphQL-based incident-analysis platform
Senior Software Engineer, CME Direct · CME Group
Jul 2013 — May 2015
- CME Direct trading platform (.NET) and stream-processing/CEP systems for market analysis
- Co-designed a behavioural testing framework
Software Consultant (self-employed) · Holdsworth & Co Consultants
Jul 2009 — Jun 2010
- Three financial-sector contracts building high-performance analysis systems and tools for black-box trading systems and algorithmic trading strategies
- A from-concept distributed execution platform scaling computation across a cluster for a private trading fund
Software Developer · Digital Future Solutions
Aug 2008 — Jun 2009
- Architected and built the next-generation 3D UI for a distributed multi-room media-centre product (.NET/WPF)
Projects
Account-linking and messaging service
May 2019 — Feb 2022
Education
Principles of Reactive Programming · Coursera (EPFL / Typesafe)
Dec 2013
High-Performance Lock-Free Data Structures and Concurrent Computing · Taught by Martin Thompson
Dec 2013
BSc (Hons) Computer Science · Queen's University Belfast
Sep 2005 — Jun 2009