Projects

A collection of my most notable personal and professional projects. Each represents a unique challenge and learning experience in my journey as an infrastructure engineer and hobbyist developer.

I'd be happy to talk about any of these projects, just ask me!

Payara

Infrastructure Lifecycle Overhaul - Phase 2

Phase 2 finally lets me play with some cool technologies, all the nuts and bolts will be put into place to allow real production-grade infrastructure to be created with the new lifecycle using dedicated AWS accounts, Terraform, ECS, CodePipelines and federated IAM access for real security.

Technologies

AWS
Terraform
Payara

Infrastructure Lifecycle Overhaul - Phase 1

Our self hosted infrastructure is so much better than it was 2 years ago when I inherited it all from the outgoing Senior DevOps engineer, but it's reached its limits and needs an overhaul to truly elevate it. Phase 1 involved a lot of thinking and planning to design how our new infrastructure will become an idea, enter production, maintenance and eventually it's deprecation.

Personal

Personal Website

This very website! It had been a thought for many months, and I had been ill for two weeks and fed up of sat in bed so one weekend I threw together this website. It's a little rough around the edges but it's a good excuse to play with some cool technology. What's not to love.

Technologies

Next.js
Tailwind CSS
Payara

Payara Documentation Rebuild

The Payara documentation site was poorly architected over 5 years ago by the previous IT team. The site did not scale and required users build the docs locally and directly SSH into production. This was overhauled with a custom Engineering Jenkins AMI to authenticate with an S3 bucket. A neat, scalable and serverless solution.

Technologies

AWS
Personal

Hotshot's Bar v2

The bar website had been left neglected for many months due to my increasing university workload, after my dissertation finished, a new and improved second interation was worked on with a shiny new interface and architected to work with all the new features that had been jankily bolted on in the first iteration..

Technologies

AWS
Java
Next.js
Tailwind CSS
Payara

Payara Website Infrastructure

The Payara website was notoriously unreliable, at it's worst maintaining just 80% uptime. It was also extremely slow, averaging 4 seconds to load in the UK. The site was just bad, for my dissertation I worked with Marketing to reverse engineer the website and overhaul the infrastructure with AWS for reliability and performance.

Technologies

AWS
Docker
Wordpress
Payara

AWS Dev Process

Since I took over all AWS related activities at Payara, I stopped the developer free-for-all on AWS Dev/Prod. There was a growing demand for developers to access AWS though, so a dev policy where users request through the IT Jira service portal, ITOps clicks accept and a Lambda provisions their account in AWS Sandbox, emails their credentials and sends a reminder to cleanup resources.

Technologies

AWS
Jira
Personal

DiscordBot v2

The original DiscordBot had been left unmaintained for about 18 months and most of its featured had broken. Instead of fixing it I rebuilt it from the ground up using what I had learnt to make a more foundationally sound piece of code. The bot did many of the same features but it worked a lot better and still utilised Payara effectively.

Technologies

Java
Docker
Discord
Payara

Payara Starter

Payara Starter was a creation of Payara's engineering team and came across my desk asking to be deployed into production. It was quickly containerised and used git-submodules to separate starter from the infrastructure as code.

Technologies

AWS
Docker
Payara

Status Dashboard

Payara's ITOps team had no good way of monitoring the availability of our self-hosted systems. Gatus was used as a simple, open-source system monitor hooked up to a teams notifier to alert us of downtime. This was a quick and dirty solution, yet proved so effective we left it in place for years!

Technologies

AWS
Gatus
Docker
Payara

Service Team Jenkins

Payara's service team had a lot of manual process they wished to automate. Even during my time in the service team they had been wanting a Jenkins environment, and 18 months later I joined ITOps and was able to deliver this environment for them.

Technologies

AWS
Jenkins
Docker
Payara

Engineering Team Jenkins

Payara's Engineering team use Jenkins as the sole CI/CD solution. This is probably the most important piece of infrastructure Payara has but it was undocumented, slow and barely worked. I gathered requirements and rebuilt Engineering Jenkins to be faster and more reliable.

Technologies

AWS
Jenkins
Docker
Personal

Hotshot's Bar v1

My dad doesn't drink that often, yet has an entire bar in his home?! He loves taking everything to the max, and so one year I thought it would be possible to create a simple website to list all cocktails we can make from the ingredients, a fun, simple novel idea to elevate the silliness. It's now turned into the wetherspoons app and a second job for me!

Technologies

Java
React
Bootstrap
Payara

Nexus Overhaul

Payara's Service and Engineering teams were sharing a nexus environment, but they had very different needs and have been requesting separate environments for years. Now I am in the ITOps team, I was able to deliver this Engineering / Service nexus split.

Technologies

AWS
Nexus
Docker
Personal

DiscordBot

A Java discord bot using Jakarta EE and Payara Micro, intended for personal use to continue programming while I rotated into the service team during my apprenticeship. The bot was used for simple tasks like translating French to English, useful for the friend who went to France on an infinite gap year!

Technologies

Discord
Java
Docker
Payara

PhoneHome 2.0

Payara's product telemetry system, PhoneHome, relied on on-premesis hardware with no backup or configuration documentation. Moreover this system did not work and reported just 6% of the telemetry data it was supposed to receive. This project overhauled Phonehome to ensure all data was captured.

Technologies

AWS
Docker
Grafana
Payara

Deprecate S3 From Release

During the Payara process, we publish Enterprise distributions to Nexus which is password locked, but we also publish enterprise binaries to a public S3 bucket for Compatibility Certification Requests. I identified this to be inefficient and a security vulnerability so re-engineered the process to solely use our Nexus environment.

Technologies

AWS
Nexus

I also worked as an Apprentice Software Engineer and Apprentice Service Engineer at Payara. Work during that time is not listed here.