Career Profile
Highly motivated and diverse software developer with over 25 years experience in the IT industry.
Scrum Master & Sitecore Certified.
Advocate and practitioner of Software Craftsmanship, Clean Code and SOLID principles.
Excellent communication skills, highly enthusiastic, optimistic, personable nature, industrious, innovative and a quick learner.
Fully immersed in agile methodologies such as SCRUM/KANBAN and agile project management, test-driven development, domain driven design, behaviour driven development.
Enterprise patterns and paradigms, continuous integration and build automation, planning process and agile design, code reviews, coverage, mess detection, iterations/sprints, retrospectives.
Experience
6 month contract providing code review, maintenance, guidance and new feature development for the back-end of RS Components ThinkHub project https://rs-thinkhub.com. Built using Spring Boot 3 and deployed on Amazon AWS.
Providing consultancy on modernizing the Transvault Migrator application written in .NET Framework.
Working on a React, Electron and Next.js front-end app which connected to a user-specified SharePoint website and collected statistic on that site.
Part of an agile development team creating the devops pipelines, security and .NET Core applications for the React+ Funded Training scheme for the Welsh Government. This included IaC, YAML pipelines, CI/CD, Docker Containers, etc. along with .NET Core MVC applications to provide public facing self-service websites that enabled employers and people who had just been made redundant to apply for funding by guiding them through a ‘wizard’ style interface. Also an admin back-end application where a team at the Welsh Government could move the funding applications along a workflow in order to check and approve them.
Short stint on the new NHS Job Search application using Java Spring, Liquibase.
Short stint on a Planning Decision Appeal app for The Planning Inspectorate using Node.js, Express, Nunjucks, Docker. Also worked on a jamstack app for on-site training for BAE using Next.js and Keystone.js as the CMS on the back-end and a React/TypeScript client app which used Apollo Client, GraphQL CodeGen and Urql to authenticate with and query the CMS.
Large transformation project which involved being a tech lead for a team building an enterprise Azure Cloud solution using .NET Core Microservices, Azure Functions (Serverless), Azure Service Bus, etc. integrating with SAP. Creation of a mobile application for field engineers using Vue.js, Offline First (Service Workers and WorkBox), Azure Maps, Push Notifications, Real-Time SignalR.
6 Months on OKDO.COM - Enterprise e-commerce site for IoT/SBC makers, integrating with NetSuite.
6 Months on the XRef Project - Using API Platform to build a REST API which accepted uploads of Excel spreadsheets, stored them in Google Cloud Storage which triggers a Google Cloud Function to process the Excel sheet. Interesting Serverless architecture.
Worked on various features of the Bipsync Research Management Software using PHP and MongoDB for the back end and Backbone on the front.
Worked on the iOS app a little, fixing a few bugs and getting up to speed with Objective-C.
Did a little R&D on ZeroMQ and Ratchet (a PHP based Web Socket library).
Also started work on an Apache Kafka based project using Java 8. Created our own custom Connectors and used the Kafka Streams API to transform Avro formatted data in real-time, leveraging the schema registry.
Wrote a nice blog post about scalable, cloud based spell checking.
Joined a start-up working on a fantastic ‘Google Search for Cars’ application. Very new and exciting technology. Java/Groovy Vert.x based microservices running in Docker containers on AWS.
The microservices self-registered with Consul (Service Discovery) and clients to these microservices used Netflix Ribbon in conjunction with Hystrix to load balance the HTTP calls to the RESTful endpoints of the microservices and ‘circuit break’ on failure.
This provided us with a fast and highly scalable architecture which could be monitored constantly and would also self-heal.
I absolutely loved the technology we used here, the architecture was rock solid and they were all fantastic people to work with.
Also used some React to build a front end onto a statistics dashboard which queried a RESTful microservice connected to ElasticSearch as the persistent store.
Award winning agile software development and consultancy. Working here I provided software development and architecture, mentorship, guidance, team leadership and oversight to multiple development teams working on different products or technologies. Did a few blog posts about the Spark Microframework and Doctrine.
Royal College of Nursing - I was development team lead on this award winning, multi site website written in Sitecore 8 MVC using tools such as TDS, GlassMapper, Razl, Sitecore Ship, Rocks.
Moneypenny Live Chat - Team lead on the Live Chat SAAS back-end. Built using ASP.NET Web API, MVC 4, SignalR, Azure Service Bus, Topics Pub/Sub.
Linguavote - Team lead on this Sitecore based e-learning platform
Investec Asset Management - Complete re-design of the IAM site using Symfony 2 and ElasticSearch.
World Vision Micro - Microfinance system used to fund start-up projects in third world countries. Written with Ruby on Rails.
Careers Wales - Aggregation and storage of job vacancy, apprenticeship and course data to be displayed on a Google Map in Amaxus. C#, SQL Server, Quartz.NET.
Artform - The Artform project team required a way of converting an SVG to a PDF. I created a small library using Java, Batik and FOP to do the job.
RS Components - Faceted search site for RS Components Microcontrollers products. Symfony 2, Solr.
Thinkbox - RESTful API providing 3rd party apps a list of categorized content in JSON format using custom Amaxus code. Optimized and performant. PHP.
Worked on the CloseIT and VoiceSafe products. VoiceSafe was a Asterisk PBX based call recording system used mainly by car dealerships.
For the R&D of VoiceSafe 2.0, we transferred CDR data and call recordings taken from a PBX collected through an Apache CXF client (running as a Linux daemon). Sent to server as XML and binary MTOM attachment.
Encrypted using WS-Security and RSA public/private key pairs. MP3s were enctypted using AES Shared Key algorithms.
Extensive use of Spring dependency injection, custom sharding algorithms, BoneCP connection pooling, Interceptors.
A lot of the work was test driven using Junit and Mockito.
We also used Zend Framework to build a secure web based GUI, enabling the customer to collate call statistics, monitor SLA, improve call answer rates and playback call recordings for legal purposes.