Projects
Here are some projects I've worked on. I've worked on many more projects than the ones listed here. The projects here a limited to my own personal projects or those where I have permission from clients to showcase their project.






Chatloop is a charity that helps refugees learn languages. I built a messaging app for Chatloop that connects refugees to their volunteer conversation partners for some language practice. I built the messaging app with React Native and the backend is a Spring Boot RESTful API server. I also built a web app with React that allows Chatloop's partner organisations to refer their clients to Chatloop.
Spring Boot
Java
PostgreSQL
GraphQL
React
React Native
Docker
Junit
Cypress
Mockito
Typescript
Expo
Tailwind CSS
CI/CD
Detox




Newsie uses AI to help news media organisations manage their video content. My role in this project was to convert some Figma designs into a Next.js MVP web app. In consultation with the client, I made improvements to the UI as I implemented the designs. Key functionality included advanced filtering of the videos, forms for updating video metadata, and social media integration for posting the videos to social media platforms. I also provided devops and REST API guidance to the team.
Next.js
React
Typescript
HTTP
Tailwind CSS








I made AW Central so that I could play Apocalypse World online during the COVID lockdowns. Apocalypse World is an indie tabletop RPG and AW Central was made with the permission of Meguey and Vincent Baker, Apocalypse World's writers. I did all the work myself: React frontend, Spring Boot backend, and a Docker + Digital Ocean deployment. UI design was by me too, but designed to match the style of the Apocalypse World book. Project highlights include complex, multi-page forms, and a UI design that captures the mood of the Apocalypse World game.
React
Typescript
CSS
GraphQL
Java
Spring Boot
MongoDB
Docker
Junit
Cypress
Mockito
