Seasoned software engineering professional with an entrepreneurial spirit.
A career spanning multiple decades building software across many industries and business sizes. Has gained invaluable experience with everything from platform and language changes to complete software development paradigm shifts.
Analytical, recognising new opportunities, spotting problems and recommending/building software solutions to help streamline business processes to meet business requirements.
Formed Alchemist Labs to build new software products and share experience to help other companies improve their competitive edge in our cloud-native, mobile-first world.
- CloudAWS, GCP, Azure, Vercel
- WebReact, Next.js, Astro, Gatsby, ASP.NET MVC
- Web StylingTailwind CSS, CSS Modules, Styled-Components, Sass
- APIRESTful, WebAPI, tRPC, GraphQL
- DataS3, RDS, DynamoDB, MSSQL/MySQL, PostgreSQL, Elasticsearch, PlanetScale, Azure Blob Storage
- ServerlessLambda, Fargate, API Gateway, EventBridge, SQS, SNS, S3, Azure Service Bus
- ContainersECS, Docker, Kubernetes, Istio, SentinelOne, Kiali, Jaeger
- TestingReact Testing Library, Jest, Vitest, Enzyme, NUnit, xUnit
- Dev OpsTerraform, AWS CDK, Cloudformation/Serverless Framework, CircleCI, GitLab, GoCD, ArgoCD, Jenkins
** This list is limited to more recently used technologies and is by no means exhaustive. **
business skillsSoftware Development
Creative and technical expertise in software development. Leading projects from conception to completion through the full development life cycle, with adherence to SOLID development principles.Project Planning
Thorough working knowledge of software development life cycles and methodologies. Experienced in Scrum, Kanban and Lean Agile. Regularly led Agile sprints and delivered all sprint ceremonies.Team Working
Enjoys working with others and a keen supporter of pair/mob programming approaches. Experience of managing expectations and deliverables across teams and departments.Remote Working
Seasoned remote worker. Has worked in fully remote and hybrid teams since 2018.Customer Focus
Works positively with internal and external clients and partners. Interacting with the business, clients, suppliers and fellow engineers to ensure the needs of all parties are met.People Management
A supportive mentor to other team members, developing skills through training and code reviews.
Alchemist Labs(AWS + GCP + Azure + Vercel)
Designed and built a new multi-account AWS infrastructure using fully modularised Terraform, deployed automatically via CircleCI pipelines.
Defined coding standards for Alchemist Labs .NET Core micro services. All (non-serverless) services are containerised and running on Elastic Container Service (ECS). Built numerous Nuget packages to allow all projects to be built in a consistent style. Applications are automatically built and tested with the code deployed and Terraform applied by CircleCI.
Completed multiple website projects using the latest versions of React. Websites were built using various frameworks in- cluding Next.js, Astro and Gatsby.
- Client Projects
- AND Digital -> Superdry -> Serverless: (AWS)
Worked with the international fashion brand to deploy their new serverless applications to AWS. Working alongside their architects to bring AWS expertise to test their designs and offer alternative solutions where needed. Utilised a combination of Serverless Framework, Cloudformation and Terraform to deploy TypeScript Lambda functions and required regular liaisons with a third-party management company for cross-account resources and integrations.
- Jaguar Land Rover -> Site Reliability Engineering: (GCP)
Helped to secure, scale and monitor their Kubernetes clusters on Google Cloud Platform. Utilised a mixture of CI/CD pipelines (GitLab) and ArgoCD to deploy apps and services. Introduced Istio service mesh to replace Nginx for ingress for improved security (mTLS) between workloads, traffic management and monitoring capabilities.
- AND Digital -> NBrown Group PLC -> Digital Transformation: (AWS)
Successfully migrated mission critical Hybris system and supporting Oracle RAC databases, from IBM SoftLayer to AWS. Introduced new CI/CD pipelines (Jenkins) to ensure the Java micro services could be tested and deployed automatically. All AWS infrastructure was created and managed using Terraform.
- AWS Infrastructure
Introduced a new multi-account AWS Infrastructure; provisioned using Terraform.
- Sales Import
Architected and delivered a brand new system built on top of our new AWS infrastructure, to import sales data from various platforms including (Spotify, Apple Music, YouTube etc), and process artist royalties. The new system (WebAPI hosted in ECS) validated, staged and reliably processed data using AWS Lambda functions and published sales data to Elasticsearch via SQS.
- Sales Area
React based web app which displayed interactive customer dashboards. Data for the graphs was obtained via various APIs which talked to a number of different data sources including GraphQL, Elasticsearch and MySQL.
- Network Logging and Service Alerting
Built a logging api and supporting package used in all our applications/services to push all log data to Elasticsearch. Cloudwatch Alarms monitored various metrics and published to SNS to trigger a series of Lambda functions to push alerts out to interested parties based on severity, via Slack channels/SMS/email.
- Ditto Vault
My 10% time project which allows users to store/retrieve passwords/documents. The system stored documents in DynamoDb so was queryable in the ReactJS based web front end, and all user documents were stored in S3. Both DynamoDb and S3 documents/objects were encrypted by KMS.
Zuto(AWS + Azure)
- AWS Migration
Migrated ~30 mission critical legacy services running on a single server, to independent services hosted on various parts of Amazon Web Services (AWS). This included risky refactoring/rewriting parts of the services, replacing unsupported technologies with their modern AWS counterparts.
- Communication Service
Led the design of a communication service that enabled the business to have 2 way SMS communication between customers and sales partners for the first time. The service was the first in the company to utilise Lambda. I later held a brown bag session to explain the technology to the rest of the company and the reasoning for why I chose it.
- Secure Document Upload
I built an a new document upload component for the company website that enabled customers to safely upload sensitive documents such as passports, photo id's, insurance agreements and other documents in line with new GDPR requirements. I opted to build this using React/Redux which others on our team were not experienced with and used the project as a teaching opportunity.
Fixed implementation errors in the in-house CQRS system which I inherited.
- Routing Slip Saga
Analysed confusing legacy code which had become a myriad of commands calling commands and replaced with a fully distributed Saga utilising the Routing Slip Pattern. Supporting both RabbitMQ and Azure Service Bus message brokers based on environment using dependency injection.
- OpenID Connect / OAuth2 Authentication / Authorisation / SSO
Implemented a centralised IdentityServer to replace the existing bespoke login system used in all web applications. Enabling single sign-on for users using Azure AD/Google/Facebook/Twitter etc.
- Distributed Scheduler
Lead development from inception to delivery of a system, capable of running tasks/applications across multiple servers. Workers were configurable to use parallelisation where necessary. The system provided up to date performance data so that the business could perform valuable data analysis.
- Data Collection
Redesigned a legacy data collection system written in Python with an up to date C# equivalent. This drastically improved the speed and reliability when gathering conversion and performance data from 3rd party APIs, and inserting it into client databases. The performance and conversion data was then matched across sources to allow for easier querying and path to conversion analysis. The data was fed into a dashboard to ensure accuracy before presentation to clients.
- Automated Trafficking
Designed and wrote a tool to automate the process of trafficking display campaigns into Atlas and DCM ad serving platforms. The tool greatly reduced the time needed to launch business critical advertising campaigns.