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 |
|---|---|---|
|
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. |
|
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. |
|
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. |
|
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. |
|
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 |
|
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 |
|
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 |
|
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 |
|
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 |
|
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 |
|
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 |
|
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 |
|
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 |
|
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 |
