Skip to content

Instantly share code, notes, and snippets.

@leeoades
Last active June 12, 2025 11:35
Show Gist options
  • Select an option

  • Save leeoades/4d331f4066c74b73b61c83c339916cf9 to your computer and use it in GitHub Desktop.

Select an option

Save leeoades/4d331f4066c74b73b61c83c339916cf9 to your computer and use it in GitHub Desktop.
{
"meta": {
"theme": "stackoverflow"
},
"$schema": "https://raw.githubusercontent.com/jsonresume/resume-schema/v1.0.0/schema.json",
"basics": {
"name": "Lee Oades",
"label": "Senior Software Developer",
"image": "https://avatars2.githubusercontent.com/u/2321091",
"email": "[email protected]",
"phone": "+44 (0)7946 233 130",
"url": "https://leeoades.github.io/",
"summary": "Professional software developer with extensive experience. Reliable, self-motivated, positive can-do attitude, tech leader, mentor and friendly chap.\nClients have ranged from large financial corporations to the games industry, charities and start-ups.\nPassionate about crafting beautiful, well-tested, maintainable code, adhering to best practices and industry standard design patterns, using an Agile and iterative approach.\nExcellent business and client facing communication skills. Talented academic (1st Class Honours degree in Mathematics with Computer Science) with systematic problem-solving abilities.\n",
"location": {
"city": "Amesbury",
"region": "Wiltshire",
"countryCode": "UK"
},
"profiles": [
{
"url": "https://www.linkedin.com/in/leeoades/",
"username": "leeoades",
"network": "linkedin"
},
{
"url": "https://leeoades.github.io/",
"username": "leeoades.github.io",
"network": "github"
}
]
},
"education": [
{
"institution": "The University of Southampton",
"url": "https://www.southampton.ac.uk/",
"area": "Mathematics with Computer Science",
"studyType": "Bachelor of Science with Honours",
"startDate": "1993-09-01",
"endDate": "1996-07-01",
"score": "1st Class Honours Degree"
}
],
"references": [
{
"reference": "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.\nWhen you hire Lee you're hiring much more than a professional, experienced, trusted and battle-hardened software developer.\nAs 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.\n",
"name": "Dale Titcombe, Head of IT, BCS, The Charter Institute for IT",
"url": "https://www.linkedin.com/in/dale-titcombe-mbcs-citp-bbaab098/"
},
{
"reference": "I have worked with Lee for many years, crossing several contracts / projects and I cannot rate him highly enough.\nLee 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.\n",
"name": "Ken Maes, Application Development Manager, BCS, The Charter Institute for IT",
"url": "https://www.linkedin.com/in/ken-maes-7511a011/"
}
],
"skills": [
{
"keywords": [
"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"
],
"level": "Master",
"name": "Coding"
},
{
"keywords": [
"Kafka",
"Microsoft Orleans",
"gRPC",
"WPF",
"RX",
"BDD Specflow",
"SQL",
"NoSQL",
"Terraform",
"GIT",
"Docker Containers"
],
"level": "Advanced",
"name": "Tech + Tools"
},
{
"keywords": [
"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"
],
"level": "Advanced",
"name": "Cloud Services"
}
],
"work": [
{
"name": "Department for Education via Hive IT",
"description": "Making UK education statistics more accessible and useful for all.",
"url": "https://explore-education-statistics.service.gov.uk/",
"location": "Sheffield + remote",
"position": "Senior Developer, Technical Consultant, Trainer and Mentor",
"startDate": "2025-01-06",
"endDate": "2025-06-30",
"highlights": [
"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/"
]
},
{
"name": "Starlizard",
"description": "Leading sports analysis and betting platform provider.",
"url": "https://starlizard.com/",
"location": "London + remote",
"position": "Backend Cloud Developer",
"startDate": "2022-07-04",
"endDate": "2024-12-01",
"highlights": [
"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."
]
},
{
"name": "eCommonSense (Merchant Systems Group Limited) / ECI Software Solutions",
"description": "ECommerce solution for the builders merchant industry. eCommonSense aquired by ECI Software Solutions in Oct 2021",
"url": "https://www.ecommonsense.com/",
"location": "remote",
"position": "Lead Integration Platform Developer",
"startDate": "2020-11-02",
"endDate": "2022-06-30",
"highlights": [
"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."
]
},
{
"name": "British Computer Society (BCS)",
"description": "The Chartered Institute for IT",
"url": "https://www.bcs.org/",
"location": "Swindon",
"position": "Senior Software Developer",
"startDate": "2019-09-01",
"endDate": "2020-08-31",
"highlights": [
"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."
]
},
{
"name": "Nationwide",
"description": "The world's largest building society",
"url": "https://www.nationwide.co.uk/",
"location": "Swindon",
"position": "Senior Software Developer",
"startDate": "2018-09-01",
"endDate": "2019-08-31",
"highlights": [
"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."
]
},
{
"name": "British Computer Society (BCS)",
"description": "The Chartered Institute for IT",
"url": "https://www.bcs.org/",
"location": "Swindon",
"position": "Senior Software Developer",
"startDate": "2015-06-01",
"endDate": "2018-08-31",
"highlights": [
"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."
]
},
{
"name": "Royal Bank of Canada - Capital Markets (RBC)",
"description": "Global investment bank",
"url": "https://www.rbc.com/",
"location": "London",
"position": "Analyst Developer",
"startDate": "2013-07-01",
"endDate": "2015-04-30",
"highlights": [
"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)."
]
},
{
"name": "Royal Bank of Scotland (RBS)",
"description": "Major retail and commercial bank",
"url": "https://rbs.co.uk",
"location": "London",
"position": "WPF Developer",
"startDate": "2012-09-01",
"endDate": "2013-07-31",
"highlights": [
"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%)."
]
},
{
"name": "Trayport",
"description": "Provides energy trading solutions for traders, brokers, and exchanges worldwide.",
"url": "https://www.trayport.com/",
"location": "London",
"position": "Silverlight Developer",
"startDate": "2012-01-01",
"endDate": "2012-08-31",
"highlights": [
"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."
]
},
{
"name": "BNP Paribas",
"description": "The largest French banking group and the largest bank in the Eurozone",
"url": "https://group.bnpparibas/en/",
"location": "London",
"position": "Senior Developer",
"startDate": "2010-08-01",
"endDate": "2011-12-31",
"highlights": [
"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."
]
}
],
"interests": [
{
"name": "photography"
},
{
"name": "8/16-bit text adventures"
},
{
"name": "acoustic guitar"
},
{
"name": "poker, chess, games"
},
{
"name": "playing football"
},
{
"name": "Chelsea Women FC"
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment