Senior Backend Engineer III at M-Kopa
August 2022 - Present | https://m-kopa.com/
At M-KOPA, my role is as a fully remote Senior Backend Engineer on the Core Lending team.
A FinTech scale-up, M-KOPA's mission is to make financing for everyday essentials accessible
to everyone, especially underbanked customers on the African continent.
Core Lending is the company's core domain and my team are responsible for systems that manage
the entire lifecycle of millions of loans, including applications, approvals, disbursements,
payment processing and refinancing. Our software currently deals with over 1.5 million
active loans from over 1 million active customers, and processes over 30 million financial
transactions per month. Over the next few years, M-KOPA is poised to grow by a factor of 10
and our systems will be required to scale accordingly.
In order to support the desired growth, I was hired for my knowledge and expertise in
migrating legacy, monolithic applications to highly scalable, cloud-native Event Sourced
microservices as well as to be a core contributor in driving increasing organisational
maturity and the ongoing re-engineering effort to support the company's ambitious future
plans.
Major responsibilities include championing an adoption of Domain-Driven Design techniques to
facilitate improvements in domain modelling as the software systems evolve as well as being
the go-to expert for an Event Sourced implementation of the core financial platform to
provide both a high performance and highly scalable design along with a provable audit log,
a pre-requisite for potential future growth plans.
Technologies used include Azure Cloud, EventHubs, ServiceBus, CosmosDB, RabbitMQ,
MassTransit, Redis, Docker/Kubernetes, AKS, AppInsights, Azure DevOps CI/CD, C#, .NET.
Senior Developer at Guestline Ltd
January 2019 - July 2022 | https://www.guestline.com
My role at Guestline was as a fully remote Senior Developer within the Data & Reporting team.
The Data & Reporting team are responsible for the ingestion, processing, analysis and
reporting of all domain event data from 5 core line of business products aimed at complete
management for the hospitality industry.
Delivering a greenfield, bespoke cloud-based SaaS solution, incoming events from hundreds of
customers spanning the UK, Western Europe and Asia are processed and analysed to provide
near real-time business intelligence to all of the product's customers, with our flagship
reporting product scaling to process over 2000 events per second.
Hired for my expertise in message-based systems, I pioneered the introduction of
event-driven architectures and event-sourced systems within both my own team and the wider
organisation as part of a pan-organisation effort to modernise and re-engineer the entire
software suite to a more cloud-native solution. The Data & Reporting Team acted as the
inaugural team to introduce such practices, becoming a best-in-class centre of excellence
within the organisation.
I was also personally responsible for driving adoption of a Domain-Driven Design approach to
business analysis and development across the entire organisation's development teams in
order to improve product design, quality & scalability, reduce complexity, optimise
cloud-based infrastructure and drive IT cost savings resulting in increased customer
satisfaction and increased profits.
Technologies used include Azure Cloud, EventHubs, ServiceBus, CosmosDB, Blob/Table/Queue
Storage, Redis, Azure WebApps, Azure Functions, Docker/Kubernetes, AKS, AppInsights, Azure
DevOps CI/CD, C#, .NET Core.
Senior Software Engineer at iVendi Ltd
August 2018 - December 2018 | https://ivendi.com
My role at iVendi was a remote Senior Software Engineer and Team Leader for a small team
focused on building real-time and offline multi-channel chat, messaging and notifications
between the company's back office systems and the various point-of-sale systems used by
dealerships and consumers within the automotive industry.
iVendi have numerous engineering teams, split into Spotify-style squads, each focusing on a
specific bounded context within the business domain. Using a domain-driven design approach
along with adoption of Event Sourcing and CQRS techniques, the company's teams build
numerous software components that ultimately comprise of a complete solution to facilitate
the end-to-end management of automotive retailing.
My role involved building a greenfield messaging platform allowing both online, real-time
chat between multiple car dealership representatives, car buying consumers and iVendi's own
support team as well as building a multi-channel real-time and offline messaging and
notification solution allowing messages to be delivered via a custom-built online chat
platform as well as Email, SMS, WhatsApp and other omnichannel platforms. The messaging
solution was required to scale to handle over 9,000 automotive dealerships with over 15,000
users along with over 75,000 registered consumers and many more anonymous prospective
consumers, processing and delivering over 250,000 messages per day.
Technologies used include C# targeting both full .NET Framework and .NET Core,
NancyFx, EventStoreDB, MongoDB, Docker, Kubernetes, RabbitMQ, Redis, ElasticSearch, PubNub,
various front-end frameworks along with numerous other libraries on both Windows and
Linux platforms and also utilising numerous Azure services.
Senior / Lead Developer at Sentric Music Ltd
September 2016 - July 2018 | https://sentricmusic.com
My role at Sentric Music was Senior/Lead Developer in a small, focused development team. I
took a leading role in the analysis, architecture, design and development of a complete
greenfield SaaS platform aimed at the music publishing industry.
The platform allowed music publishers and artists to manage relationships, catalogues of
works, performances and other related activities, automating the management of artist
repertoire (including analysis and processing of media) and processing & collection of
royalty payments from a worldwide group of collection societies.
I architected, designed, and developed the complete AWS infrastructure and the entire
software stack which comprised a message-based service-oriented architecture of numerous
subdomain specific components and made use of a large number of AWS services. This backend
served both an API and two front-end websites, focused on publishers and artists
respectively. I also championed a best-practice lean and agile continuous delivery process
allowing the team to iterate quickly and continually deliver business value ultimately
facilitating the successful delivery of a robust, highly-scalable and performant software
system.
I was also the principal architect and sole developer for the external-facing RESTful API
component of the software stack, a crucial development effort that allowed the company to
win a major US client through timely integration with their own systems.
Technologies used include C#, .NET, ASP.NET MVC/WebAPI, Jenkins, AWS (including Aurora/MySQL,
EC2, S3, ELB, VPC, ElastiCache, Lambda, SNS, SQS).
Senior / Lead Developer at Amaze Plc
July 2015 - September 2016 | https://www.amazerealise.com
As a senior/lead developer at Amaze, I took a leading role in the analysis, design and
development of custom websites and applications using the full Microsoft .NET stack and
built on top of a core content managed platform using the EPiServer CMS. I was the technical
lead and senior developer on two major website projects for the NSPCC, a leading UK
children's charity.
A greenfield project for childline.org.uk was a ground-up development of a complete new
website based upon the EPiServer CMS and Community v9 platforms with extensive bespoke
functionality including custom registration, forums, support knowledgebase, online drawing
tool and one-on-one real-time chat functions and including complete integration with
3rd-party back-end logging and auditing systems as well as a complete REST API for mobile
app integration utilising the Google Cloud Messaging platform.
A brownfield project for nspcc.org.uk involved the addition of bespoke e-commerce
functionality using EPiServer Commerce v9 to facilitate the charity's biggest yearly
fundraising effort, Letter From Santa. The project involved development of a bespoke order
form, integration with numerous payment gateways, extensive custom reporting and
administrative functions as well as complex data import and export functionality to
facilitate communication with 3rd-party suppliers.
Technologies used within both projects included: C#, ASP.NET MVC 5, Web API 2, SQL Server
2012, Entity Framework 6, SignalR, HTML5, CSS3, JavaScript/jQuery along with related tooling
such as LESS, SASS, Grunt and Swagger/Swashbuckle (for API documentation).
Senior Developer at New Mind Internet Consultancy Ltd
July 2012- July 2015 | https://www.newmind.co.uk
At New Mind Internet Consultancy Ltd. my role involved analysis, design, development and
maintenance of the company's industry-leading web based Destination Management System (DMS)
used by the majority of the UK tourism market, as well as a growing European user base.
The company's DMS provides service to over 20,000 corporate tourism businesses, handling over
1 million transactions and generating over £2 million of business from over 4 million
visitors to the many public tourism websites, per month.
My role included providing continued advancement of the large multi-module code-base
(Product/Enquiry Management, CRM, eCommerce etc.), driving architectural improvements and
progressive refactoring to increase application and code quality and reduce technical debt,
as well as delivering increased business and customer value through the development of
additional features and product functionality. This included integration with many 3rd party
services for inventory management and real-time availability enquiries and booking (e.g.
SiteMinder Channel Manager), many social network sites and services along with mapping,
geo-location and reviews integration.
I also had a senior role in the analysis, design and development in re-engineering the
application from a hybrid “classic” ASP/ASP.NET Web forms platform using NHibernate and SQL
Server, to a modern ASP.NET MVC platform using a Behaviour-Driven Development (BDD) approach
within an Agile framework and using C#, SQL Server, Entity Framework, WCF and related
technologies and encompassing best-practice architecture and design to support a secure,
highly-scalable and high-performance web application, ensuring the DMS platform can support
its large and growing user-base, and ensuring continued delivery of the company's 99.99%
uptime and throughput guarantees.
Senior Web Analyst Developer / Team Leader at Hill Dickinson LLP
June 2007 - July 2012 | https://www.hilldickinson.com
My role at Hill Dickinson involved leading and mentoring a team of developers through a
number of line-of-business applications and projects.
I was responsible for the analysis, design and development of a number of flagship products
within the Insurance/Fraud division, "Netfoil" (www.netfoil.co.uk), a full-featured
anti-fraud website application, database and related back-end utilities, and “Netfoil ACE”,
a fraud prevention SOAP/XML web-service and complete API targeted at integration within
third-party vertical market solutions.
Both products were aimed at the motor insurance and accident management market and included
complex and extensive real-time data analysis, matching and heuristics based upon
user-defined metrics, from both our own multi-million record database as well as
comprehensive data matching and aggregation from a wide variety of third-party data sources
and online API's (i.e. electoral roll, DVLA, telephone directories etc.) to provide clients
with key fraud indicators and actual fraudulent history of searched entities. Both products
also included extensive MI reporting using ASP.NET charting and SQL Server Reporting
Services.
Both products were originally developed with C#, ASP.NET 2.0 and SQL Server 2005 using a
distributed, scalable, standards compliant and security-conscious approach with multiple
application tiers, but were subsequently migrated to C# / ASP.NET 4.0 and SQL Server 2008
R2, including the introduction of newer technologies and frameworks such as WCF, LINQ and
Entity Framework, along with implementation of AJAX/jQuery functionality. The applications
were also penetration tested by dns.co.uk (now Dell SecureWorks) as part of a rigorous
security audit, and passed with no vulnerabilities.
The development of these products included related developments of tooling and utility
applications using a wide array of technologies, including ASP.NET/ASP.NET MVC, WinForms and
WPF. As Greenfield projects, I performed significant business and technical analysis,
liaising with senior stakeholders throughout full project life-cycle, along with taking the
lead role in the design, development and documentation of the applications. Within my role,
I was also instrumental in driving best-practice improvements in team processes and
procedures along with being responsible for mentoring and training developers on modern .NET
technologies and techniques.
Other duties within the role included on-going development and maintenance of a number of
other internal applications, both web and desktop based, which included the corporate
intranet, extranets and various applications for many internal departments.
Lead Analyst Developer / Team Leader at Conferma Ltd
May 2005 - June 2007 | https://www.conferma.com
Conferma Ltd. was created as a software subsidiary of NIS Europe Ltd in order to focus on the
continued development and marketing of the company's “Conferma” product suite to the wider
travel marketplace.
After having successfully lead the development of the Conferma project at NIS Europe, I was
chosen to continue my role as lead analyst developer and team leader when the Conferma
technology intellectual property was transferred to the new Conferma company.
My role at Conferma was a continuation of my role at NIS Europe, leading the same development
team in the continued development of the Conferma product suite, including continued
migration to the .NET platform, enhancements to the product's functionality and enhanced
white-labelling allowing further integration into our client's own systems, and continued
integration of an expanding portfolio of online services and functionality from an
increasing number of strategic business partners and third-party solution providers.
Senior Analyst Developer / Team Leader at NIS Europe Ltd
February 2002 - May 2005
At NIS Europe, I was the senior analyst developer and team leader for 4 developers, utilizing
VB6, Classic ASP, C#, VB.NET and ASP.NET along with SQL Server 7/2000/2005.
Major achievements at NIS Europe included the complete Greenfield analysis, design and
development, through full project lifecycle, of the company's flagship product, Conferma
(www.conferma.com); a complete corporate travel and accommodation management solution.
Conferma is both a full-featured website and also a complete SOAP/XML web-service API.
The Conferma solution was built upon the consumption and intelligent integration of numerous
real-time web services and remote API's from many third-party providers including over 3
different Airline GDS booking systems, over 6 different hotel booking API's, online car hire
API's and many other online services. This allowed corporate clients to seamlessly manage
the entire end-to-end itinerary process including real-time availability checking, price
enquiries and comparisons, reservations and complete itinerary management including
administrative functions of preferred supplier and budgetary management and compliance along
with full MI analysis and reporting.
Other projects I was involved in included maintenance and extended development of internal
company applications (both web and desktop-based) to support the Accounting/Financial,
Account Management and Operations departments.
Senior Developer at PWG Computer Software UK Ltd (t/a Jupiter IT)
May 2000 - December 2001
As senior developer at Jupiter IT, my role involved team and project leadership through full
life-cycle analysis, design, and development of 4 separate custom multi-user desktop
applications sold by the company.
Each application consisted of an MS Access or MS SQL Server back-end database, a business
layer component and separate GUI, developed in VB6. The software typically targeted niche
management markets (i.e. Domiciliary Care, Film Location Management etc).
Towards the end of my tenure, I was instrumental in evaluating the .NET platform as a
possible migration path for the company's many products.
Technical Support / Developer at Datafile Software Ltd
August 1995 - May 2000 | http://www.datafile.co.uk/
My role at Datafile Software initially involved providing technical and applications support
on DOS, Windows, Networking and the company's own proprietary software to authorised
resellers, however, the role quickly became one in which I was responsible, through full
life cycle, for the development and maintenance of a company website, Intranet and various
internal applications using VB5/6, "Classic" ASP and MS Access.