RDS User Monitor for MyTutor

At MyTutor, we aimed to ensure that the application database was accessed only by authorised user accounts for legitimate reasons. This project involved analysing AWS CloudWatch logs for the AWS RDS instances to extract relevant information. A list of users and their executed queries was compiled, excluding certain allowed users. The accounts that did not meet the criteria were then posted to a Slack channel for review.

NHS UHNM legacy PHP systems

A prominent developer at the Trust had left leaving over 2 million lines of unsupported PHP code spread across numerous inter-related applications. The trust needed someone who could quickly become proficient at maintaining the code, develop new functionality, and offer advice on redeveloping the systems to their in-house standards.
This involved:
• Supporting the applications for the 8,000 Stoke Hospital users. This later became 12,000 when the Hospital merged with Stafford Hospital.
• Developing and maintaining a Virtual Machine to emulate the live system in isolation. This was then used for development and testing of changes to the live system.
• Making database updates to the live database to keep the system up to date and functional.
• Implement an authorisation system which integrates with the Hospital’s MS Active Directory structure.
• Developing a backup solution for the code and data, and preparing for disaster recovery.
• Responding to helpdesk requests, liaising with users to identify problems and provide solutions either by code changes, database updates or training.
• Redeveloping the import process for Staff-In-Post data from HR systems. This was a new PHP/MySQL application to parse the incoming data, and load it into the live database. I used jQuery UI to add a user friendly front end.
• Active Directory group maintenance. The BI team needed a way of easily managing users Active Directory groups. I wrote a suitable utility in C# .NET.
• Supplies & Procurement required management reports and graphs. I coded some pages using PHP/MySQL, jQuery and Google Charts.
• Other ad-hoc development such as developing Report Builder 3.0 reports for SQL Server.

HOPS Linux Server

HOPS required a reliable server to host essential business applications. This server was crucial for hosting the client portal, generating nightly management reports, and facilitating an authorisation API to the MS SQL server.

HOPS Nightly Excel Reports

Key personnel at HOPS rely on daily management reports to monitor daily operations, particularly as much of their work occurs off-site. To meet this need, they requested automated nightly generation and distribution of these reports to designated staff members via email.

HOPS Text Messaging Promotion

As part of a marketing campaign, HOPS invited potential candidates to engage in a text message dialogue to determine their eligibility for a government-endorsed training scheme. I developed a system to send messages and process replies according to a predefined script, ensuring it could handle accidental and intentional misuse.

HomeServe CMS

I developed a CMS that worked seamlessly with the existing templating system, enabling copy editors to log in, modify text, and manage revisions of site content.

PHP Support for HomeServe

I joined HomeServe as one of two contractors hired to support their legacy PHP application developed in the CakePHP framework. The decision was made to refactor the code in ASP.NET. Along with the other contractor, I collaborated with the existing PHP team to wind down the current application, address imminent issues, and assist in the early design stages of the new .NET solution. During my two years at HomeServe, I eventually led a team of two other PHP developers.

OPCON Production Control System

I designed a resilient three-node cluster spread across two data centres, each with separate power and communication links to the production facility. This setup ensured that the plant could be operated from either data center in the event of a hardware, power, or network outage.

Jaguar VMS Support

  • Networking configuration
  • Disk Shadowsets
  • Application program development
  • Operating installs and patches
  • File system journals
  • Backups (System and Application)
  • Hardware configuration
  • Disaster recovery planning

The hardware setup included a cluster of four Alpha 1000s running OpenVMS 7.1, with three shadowsets providing shared reliable storage for both the application and operating system.

Mercia Servers

One of our initial tasks was to build and configure web, FTP, Usenet, and mail servers, each running on Linux-based PCs. This project required me to familiarise myself with early versions of many GNU and open-source packages, including Sendmail, WU-FTP, and Apache.

Quasar PEPS Module

As part of a small team of three, I developed the Quasar PEP (Personal Equity Plan) module, an investment instrument in the UK similar to a modern ISA. We managed the project through its full life cycle, including screen design, module coding, unit and integration testing, and writing user manuals.


I joined a small team tasked with modernizing the software by adding a contemporary MS Windows front-end. I proposed running the existing application in “server mode” and using a Windows client to feed it keystrokes. Mumps procedures interfaced with Windows requests, sending appropriate keystrokes to the legacy code. The output from the legacy code was intercepted to automatically generate and cache Windows dialogues.

Quasar Support

Quasar featured a core system with general functions and libraries of reusable procedures, along with numerous modules offering various client features, which were sold and supported individually.

Pirates Computer Game

Although the game did not sell, I thoroughly enjoyed creating it. The logic involved developing a fast algorithm for character navigation through the maze, effectively handling dead-ends and loops, but giving a near optimal route from a given start point to end point.

Commodore PET Assembler

Having a strong foundation in BASIC, I was eager to delve into assembly language on these machines. Since an assembler wasn’t available, I took the initiative to develop a two-pass assembler using PET BASIC.

Invaders Return Computer Game

The resulting game, inspired by Space Invaders, featured invaders that occasionally peeled off for bombing raids. Although the project was not commercially successful, it provided enjoyable gameplay and a fulfilling coding experience.

Expert System Shell

For my HND project, I developed an expert system inference engine intended for an IBM PC, utilizing C programming. Initially, I implemented all algorithms on my BBC Micro using BBC Basic, which was accessible at home. Once I verified the logic, I translated the code to C for my final year project. Following successful completion…