Projects

I have worked on a variety of projects, ranging from small personal projects to large commercial projects.
Here are some of the highlights.

Ready Case

Modular platform for managing, reporting, and processing judicial cases. Used by courts, commissioners, and tribunals.

Open

Working at Ready Tech, I was a key contributor to their flagship legal case management software, used by UK and Australian courts. Developed new features and maintained code on both the front-end and back-end. Optimized database performance. Rolled out CI/CD tooling and contributed to improving quality and to maintenance releases.

Technologies

Java logo

Java

Tomcat logo

Apache Tomcat

Vue.js logo

Vue.js

Azure logo

Azure

SQL Server logo

SQL Server

PowerShell logo

PowerShell

Octopus Deploy logo

Octopus Deploy

Xtreme Hip-Hop logo

Xtreme Hip-Hop

An application for booking gym classes and buying merchandise.

Open

Xtreme Hip-Hop with Tash is a web application that allows people to book classes by browsing a schedule, buy merchandise in a interactive single-page style web application. I built the system from the ground up across the stack with only delegating authentication to Auth0. Over 200 users booking classes with an efficient payment system using Stripe.

Technologies

React.js logo

React.js

TypeScript logo

TypeScript

TailwindCSS logo

TailwindCSS

Vite logo

Vite

GraphQL logo

GraphQL

Java logo

Java

Spring logo

Spring Boot

PostgreSQL logo

PostgreSQL

Auth0 logo

Auth0

Stripe logo

Stripe

Lambda logo

AWS Lambda

Features

Browse classes using a calendar

Book and pay for classes card or cash

Merchandise store

Admin dashboard

Responsive mobile-first design

Progessive Web App (PWA) support

Account management dashboard

Refunds and cancellations

Spam protected using Google reCAPTCHA

Seamless account setup with Auth0 integration

Stripe integration

Screenshots

Xtreme Hip-Hop screenshot oneXtreme Hip-Hop screenshot twoXtreme Hip-Hop screenshot threeXtreme Hip-Hop screenshot fourXtreme Hip-Hop screenshot five
Go Warriors logo

Go Warriors

An application for viewing NBA games and statistics.

Open

I developed this application to learn new web technologies Next.js App Router and Go as a backend API. The front end is written in React Server Components (RSC) and I really tried to write the code for the application in the 'App Router' way so I could understand how this technology works and the pros & cons of this approach. I also really wanted to learn Go and to see what it was like writing a HTTP API in Go.

Technologies

Next.js logo

Next.js

React.js logo

React.js

TypeScript logo

TypeScript

TailwindCSS logo

TailwindCSS

Vite logo

Vite

Go logo

Go

AWS Lambda logo

AWS Lambda

Features

View NBA games and statistics

View NBA player statistics

View NBA team statistics

View NBA game statistics

Dark mode

Responsive mobile-first design

Server-side rendering

Caching at the page level using RSC

Super fast API written in Go

Screenshots

Go Warriors screenshot oneGo Warriors screenshot twoGo Warriors screenshot threeGo Warriors screenshot four
Directory to Spotify logo

Directory to Spotify

A web application that allows users to scan a directory of music files and add them to their liked songs or playlists on Spotify.

Open

I developed this web application as a personal project to learn about various new web technologies. One of the main challenges was to scan a directory of music files and extract metadata from them. I used web workers to offload the scanning process from the main thread to prevent the UI from freezing. To match the songs I had to normalize the metadata text and the search results. I then used a fuzzy search algorithm to find the best match. Exact matches are chosen first, then matches with the same artist, then matches with the same album, and finally matches with the same title. Every match is ranked from a match score from 0 to 1 to further refine the results. This application is 100% client-side and does not require a server to run. It uses the Spotify Web API to add songs to the user's library and playlists.

Technologies

Web Worker logo

Web Worker

React.js logo

React.js

TypeScript logo

TypeScript

TailwindCSS logo

TailwindCSS

Vite logo

Vite

Features

Scan a directory of music files.

Add songs to liked songs or playlists on Spotify with the click of a button.

Preview songs before adding them.

Visualize the scanning process.

100% client-side, no server required.

Responsive mobile-first design.

Dark mode.

Screenshots

Directory to Spotify screenshot oneDirectory to Spotify screenshot twoDirectory to Spotify screenshot threeDirectory to Spotify screenshot fourDirectory to Spotify screenshot fiveDirectory to Spotify screenshot six

Videos

Apollo Server Fastify logo

Apollo Server Fastify

This is a simple package that easily allows you to connect your own Fastify server implementation to an Apollo Server instance.

Open

A while back I built a simple service layer in between Node.js and Apollo Server. The package translates an incoming request to an internal GraphQL query then returns the JSON with streaming. After I built the package I contacted the Apollo foundation and they added it to their official integrations list. Currently it gets nearly 50,000 weekly downloads

Technologies

Node.js logo

Node.js

GraphQL logo

GraphQL

Fastify logo

Fastify

Apollo GraphQL logo

Apollo