summary

Professional software developer with extensive experience. Reliable, self-motivated, positive can-do attitude, tech leader, mentor and friendly chap.

Clients have ranged from large financial corporations to the games industry, charities and start-ups.

Passionate about crafting beautiful, well-tested, maintainable code, adhering to best practices and industry standard design patterns, using an Agile and iterative approach.

Excellent business and client facing communication skills. Talented academic (1st Class Honours degree in Mathematics with Computer Science) with systematic problem-solving abilities.

Skills

Coding

Master
  • C#
  • .Net Core
  • Multithreading
  • Low latency
  • Event driven architecture
  • Microservices
  • Actor model
  • CQRS
  • Event sourcing
  • LINQ
  • Asynchronous Programming
  • Dependency injection
  • ASP.Net Core APIs
  • TDD
  • Unit Testing

Tech + Tools

Advanced
  • Kafka
  • Microsoft Orleans
  • gRPC
  • WPF
  • RX
  • BDD Specflow
  • SQL
  • NoSQL
  • Terraform
  • GIT
  • Docker Containers

Cloud Services

Advanced
  • AWS Lambdas
  • AWS Step Functions
  • AWS SNS
  • AWS SQS
  • DynamoDB
  • AWS API Gateway
  • AWS EC2
  • AWS S3
  • MySql
  • AWS CloudWatch
  • Azure Function Apps
  • Azure Event Grid
  • Azure Queues
  • Azure Blob Storage
  • Azure AI Search
  • Azure Application Insights

Work Experience (10)

Jan 2025 - Jun 2025
Senior Developer, Technical Consultant, Trainer and Mentor
Department for Education via Hive IT
Sheffield + remote https://explore-education-statistics.service.gov.uk/
  • Developed a new enhanced search capability for the UK Government's Explore Education Statistics system.

  • Introduced an event-driven mechanism (Event Grid events to Storage Queues) to provide the new functionality without further coupling.

  • I created multiple simple Azure Function apps to consume the events and generate, update or delete content blobs in Blob Storage for the search indexer to consume.

  • Introduced Serilog to provide structured logging into Application Insights.

  • Provided technical leadership, training and mentoring to the Hive IT developers on software practices, design improvements and unit testing.

  • To view examples of my work, this project is open source: https://github.com/dfe-analytical-services/explore-education-statistics/

Jul 2022 - Dec 2024
Backend Cloud Developer
Starlizard
London + remote https://starlizard.com/
  • Maintained and enhanced features in a complex, asynchronous, low latency, event sourced / event driven betting platform.

  • Built a football multi-game simulation component to emit game events (goals, cards, extra time, penalties) and betting events in a reasonably realistic manner. This is used for both load testing and simulation of rare events e.g. penalty shootouts.

  • Developed a new mechanism in the betting platform to handle how liabilty is grouped and aggregated for related markets to better coordinate the pricing to reduce opportunities for arbitrage.

  • Implemented several autonomous components to encapsulate behaviours and execute actions based on events, timers and the state of the system.

  • Made heavy use of Actor architecture using Microsoft Orleans that consumer Kafka streams. Communication with external components via gRPC streams and Swagger end points. Persistence to MySql or DynamoDB where appropriate.

  • High test coverage using XUnit and Specflow tests.

  • Utilised many technologies and tools: Docker, K3D, Tilt, Kubernetes, Kowl, RedPanda, OpenLens, Helm, Kibana, DataDog, plus many AWS services

  • My use of the state machine `Stateless package within Orleans revealed a bug in the library which I reported and fixed. The fix was accepted and merged into the library.

Nov 2020 - Jun 2022
Lead Integration Platform Developer
eCommonSense (Merchant Systems Group Limited) / ECI Software Solutions
remote https://www.ecommonsense.com/
  • Designed and built the middleware layer to interface the data, actions and events between the front end Magento system and numerous custom Builders Merchant ERP (Enterprise Resource Planning) systems.

  • Beautiful thin vertical slice components to better isolate feature implementations. Use of Mediatr for clean code separation.

  • Event driven architecture within AWS - API Gateway endpoints emit events into SNS, queued into SQS, and handled by single responsibility Lambdas. Persistence in MySql and/or DynamoDB.

  • Declared the infrastructure and deployed it using Terraform.

Sep 2019 - Aug 2020
Senior Software Developer
British Computer Society (BCS)
Swindon https://www.bcs.org/
  • Candidate registration system : Multiple independent, asynchronous .NET Core microservices, APIs, ASP.NET MVC websites and a Blazor client app deployed to AWS.

  • Distributed, event driven architecture within AWS (SNS, SQS, Lambdas, DynamoDB).

  • Cleanly built components utilising Mediatr, built using TDD, XUnit and mock builders.

  • Also co-developed .NET Core web application to replace legacy system. Included simple isolated SPAs in Knockout and Typescript, dynamic creation of Excel and Word reports using business supplied templates, sending customised emails.

Sep 2018 - Aug 2019
Senior Software Developer
Nationwide
Swindon https://www.nationwide.co.uk/
  • Developed .NET Core backend services for a new, large and complex distributed system for Mortgage Consultants to process new mortgage applications.

  • Hosted in Docker containers using Kubernetes.

  • Event driven architecture over Kafka. Storage in MongoDB.

  • Integration with many existing legacy services.

Jun 2015 - Aug 2018
Senior Software Developer
British Computer Society (BCS)
Swindon https://www.bcs.org/
  • Built .NET Core ASP MVC url for exam invigilators - Knockout, Bootstrap, OAuth, SQL DB, deployed to Amazon AWS EC2

  • Developed .NET image processing algorithms for detecting answer from a photo of an exam paper, eliminating lighting abnormalities / shadows and determining which circles were coloured in. High profile project request from CEO, concept to delivery in 3 months.

  • Significantly improved customer experiences and replaced several tedious, internal, manual processes through automation. Used AWS Lambdas and Step Functions to integrate internal systems with 3rd party vendors, Salesforce APIs.

  • Implemented a complete workflow for Salesforce development team – introduced source control, continuous integration, automated deployments, environment specific configuration. Provided training, documentation and support.

Jul 2013 - Apr 2015
Analyst Developer
Royal Bank of Canada - Capital Markets (RBC)
London https://www.rbc.com/
  • Front Office FX application provides live + historical data for quote and deal blotters, dealer intervention, position display.

  • WPF application.

  • Low latency streaming (RV & Solace into RX)

  • High unit test coverage and reduced regression costs through BDDs (nBehave).

Sep 2012 - Jul 2013
WPF Developer
Royal Bank of Scotland (RBS)
London https://rbs.co.uk
  • Back office P&L / Balance Sheet sign off application.

  • Multithreaded WPF application making heavy use of RX for its multithreading, receiving of updates, UI interaction etc.

  • Well-architected code and separation of concerns through MVVM, view-model first.

  • TDD maintains very high test coverage (+90%).

Jan 2012 - Aug 2012
Silverlight Developer
Trayport
London https://www.trayport.com/
  • Flagship Commodities Trading Platform

  • Silverlight v5 multi-window out-of-browser application for traders providing live market prices.

  • Written in C# and F#. Created new features within the application as well as maintaining it, refactoring and improving its architecture, stability and performance, plus troubleshooting and fixing issues.

  • Autofac, MEF, RX, TDD, Moq, AgUnit, Silverlight Unit Testing Framework, SpecFlow, interop to C++ COM and Win32 components.

  • Agile methodologies, pair programming, peer reviews. Provided technical support to team members.

Aug 2010 - Dec 2011
Senior Developer
BNP Paribas
London https://group.bnpparibas/en/
  • Developed enhanced WPF application framework including layouts, state persistence, magnetic windows, cross-process communication and eventing, common controls and styling and more

  • Live FX Trades blotter WPF windows application that displays live, filterable grids of FX trade data. TOC subscription service, communication using Protobuffers through RV layer, application used RX to throttle incoming data.

  • Live FX Position monitor WPF app that displays live FX positions on animated bar charts. Data can be drilled into to display different cuts e.g. by currency pair, client sector, region etc. Windows service uses continuous queries onto Coherence database and MDX queries into OLAP Cube.

Education (1)

1993 - 1996
Bachelor of Science with Honours
Mathematics with Computer Science
The University of Southampton

Interests

photography

8/16-bit text adventures

acoustic guitar

poker, chess, games

playing football

Chelsea Women FC

References

“ I've had the pleasure of working with Lee on a couple of occasions in the past decade, both long term consultant hires, and cannot recommend highly enough his skills and the way that he delivers them into teams and projects. When you hire Lee you're hiring much more than a professional, experienced, trusted and battle-hardened software developer. As well as the high quality outputs that you'd expect from a consultant developer like Lee, he also adds his abilities to generate, foster and maintain high levels of enthusiasm and collaboration in any team that he joins. ”
Dale Titcombe, Head of IT, BCS, The Charter Institute for IT
“ I have worked with Lee for many years, crossing several contracts / projects and I cannot rate him highly enough. Lee has been instrumental in revolutionising our ways of working and has never let me down when it comes to delivering quality product. He's also completely autonomous and finds ways of filling gaps even between tasks. ”
Ken Maes, Application Development Manager, BCS, The Charter Institute for IT