Projects

Some of the repos may be private, but if you want to discuss any of the code, just let me know.

Listed in the order of most complicated to least complicated.

Independent

Links Tools Summary

Job Applications Tracker

TypeScript, HTML, CSS, React, Node.js, Express, SQLite, Mantine UI, Nivo charts, Auth0, deployed to Dokku on a Digital Ocean droplet

Web application. Started as a small project to help me track my own job search, ended up as a full fledged applications available for everyone. Database, applications tracking, status updates, demo mode with sample data, real data after authentication, visualisations with Sankey graphs and a rejections waterfall.

S3ven D1als

GameMaker, GML, TypeScript, HTML, CSS, Redis, Node.js, Express, deployed to Devvit (Reddit games)

A deceptively simple drop and match puzzle game, inspired by Drop7, with a clock theme. All art and game logic were made in GameMaker, Reddit integrations were built in Devvit TS/Express, and user data is stored in Redis. Submitted for the Devpost Reddit GameMaker hackathon 2026.

Lines Game

JavaScript, HTML, CSS, deployed to Github pages

A match puzzle game, inspired by the Lines game from the '90s. All game logic is in JavaScript, art is dynamically generated using CSS. See Readme for detailed functionality.

Advent of Code 2024

Javascript, HTML, deployed to Github Pages

This is one of the Advent of Code challenges. I solved the first two days of the 2024 edition. I built it in JS, so that anyone can add their own input and get an answer. Absolutely no styling.

Advent of Code 2022

Svelte, TypeScript, deployed to Vercel

This is one of the Advent of Code challenges. I solved the first six days of the 2022 edition. I built it in Svelte, so that anyone can add their own input and get an answer.

Course-Related

Links Tools Summary Course

Take It Away Ernie

React, Express, SQLite, Knex, Superagent, Tanstack React Query, TypeScript, plain CSS

This was a five day group project. I built the journey planner including all its frontend and backend functions, as well as the database seeds, and the footsteps interactions.

Dev Academy Bootcamp

Library Information System

C++, Qt Creator, bCrypt, SQLite

This was a pair project when I was studying at Yoobee in 2022. Standalone Windows application that mimics a library system (the one with books, not a coding library). See Readme for detailed functionality.

Yoobee

Birds of Aotearoa

React, Express, SQLite, Knex, Superagent, Tanstack React Query, TypeScript, Tailwind CSS

Full stack, solo project, data and images sourced from a Otago Uni project page

Dev Academy Bootcamp

LL Cool J Fan Club

React, Express, SQLite, Knex, Superagent, Tanstack React Query, TypeScript, Tailwind CSS

This was a one-day group project. I built all the database functions and backend routes, as well as the frontend join form that uses some of those functions.

Dev Academy Bootcamp

Duck Duck Cat

React, Superagent, Tanstack React Query, TypeScript, external API use (front-end)

TW: Sound! This was a one-day group project. I built the cat page (frontend external API - it's a bit slow) and the final boss page.

Dev Academy Bootcamp

Javascript Cafe

HTML, CSS, and Javascript. Data is stored as an object.

This was a fun project that taught us to use objects and dynamically populate information on the page. The stretch goals of having a restock button was particularly fun to implement. Other features include: in-session 'database' of stock and business cash, ability to respond when out of stock, and background music.

Dev Academy Foundations

Whack-a-Mole

HTML, CSS, and Javascript

This started off as another carnival game, but became so much more. What was initially provided was a pre-styled board and an empty JS file. I've used the same logic for displaying the mole as what I learned in Tic-Tac-Toe - traverse through all the table cells and place the image in a random cell. The cell clicked event is also the same as what was used in Tic-Tac-Toe. The time attack mode took a lot of learning about setInterval and setTimeout functions. Adding the time attack mode, the timer countdown, and leaderboard were stretch goals.

I am particularly proud of the leaderboard and utilised some of the learning from the Javascript Cafe - using objects to store data and displaying them with innerHTML.

Dev Academy Foundations

Tic-Tac-Toe

HTML, CSS, and Javascript

How much simpler can such a game be? Turns out not that easy when you have to code each little bit of it.

Here we learned how to catch clicks, display objects with a click, play sounds, and keep score. I also spent a lot of time styling this (and then carried over the same styling to the Mole project) - using CSS Grid Areas made a lot of sense after using them here.

Dev Academy Foundations

Rock Paper Scissors

HTML and Javascript

This was a challenge from The Odin Project. Has no styling, but I felt pretty proud of implementing all the score-keeping.

The Odin Project

Dress the Clown

Javascript (all CSS and HTML was provided)

This is a simple 'game' where you use the keyboard arrow keys to interact with the image. A 'save this image' button is also included, but this was pre-built for us. Main learning here was how to catch keypress events.

Dev Academy Foundations

Inflate the Unicorn

Javascript (all CSS and HTML was provided)

This is a simple 'game' where you click on the unicorn to inflate its balloon horn. Main learning here was how to catch onclick events (which we already learned in Tic-Tac-Toe), and to cycle through images to catch the correct clicks.

A simpler solution may have been to give an ID to each individual unicorn, but I wanted to get this done without changing the HTML that was provided.

Although simple to code, several hours were spent finding the right sounds on the various free sound websites.

Dev Academy Foundations

DOM Interactions

Javascript (all CSS and HTML was provided) This was a simple follow-along task that had us learn to interact with the page. Dev Academy Foundations

Mevo Map App

Gemini CLI Months after graduating from Dev Academy, they asked some alumni if we could test using Gemini CLI in a group-project setting. Another graduate and I did this using the Mevo homework assignment. It took about two hours and neither of us touched the code at all, we were just prompting in the CLI and saying yes or no. The only thing I did manually is create the repo, write the original MD with instructions, and deploy to github pages. It was quite frankly soul destroying and made me feel more like a designer than a programmer (eg, "no, the box now overlaps, move it a bit to the right, remove the padding please, now the map is too skinny, make the cars have a blue outline"). Dev Academy AI Coding Essentials