Projects

Projects

Some projects worth listing

2026

Trackness


Trackness is my thesis project, a full stack web application for tracking exercise and nutrition. Users can log daily steps, workouts and food intake, view the data in charts, and get an estimate of how their weight is trending over a chosen period. The client is built with React and Vite, the server with Hono running on Bun, and Firestore is used as the database.

I built the codebase as a monorepo with shared TypeScript types and followed the service-repository pattern, with Jotai on top for more complex state management. The application also includes authentication, and I deployed it to a production environment.

The thesis set out to build a functional application and to evaluate whether the BHVR stack (Bun, Hono, Vite, React) suits this type of full stack project. The result was a working browser-based application, and the stack proved to be a good fit and a clear foundation for building the project step by step. The work also showed that Bun's ecosystem is not yet as established as more traditional alternatives, even though it performed well here.

Trackness
Trackness
Trackness
Trackness
2024

GitHub Readme Footer Generator


During my internship I worked across a range of everyday tasks, but the piece I owned end-to-end was the GitHub Readme Footer Generator. It was an internal terminal tool that fetched every repository in an organisation and edited their READMEs in bulk or one by one, appending a custom HTML footer with the company logo and links. It also archived old repositories and could detect an existing footer, then overwrite or skip it. I built it solo, with a senior developer owning the requirements and reviewing the code.

2023

Weatherapp


Weatherapp was a course assignment where the main learning goal was working with external APIs. I used the public Visual Crossing API for the weather data and built a basic web application around it that works on both computers and phones. Users could look up locations and see current conditions, the next 24 hours and a seven-day forecast. I built the front end mainly with React and Tailwind CSS and kept the back end to a simple Express server.

weather app gif
2023

Buglister


I built Buglister as a small personal tool, mainly as an excuse to try out Electron. It let me add bugs to a list, move them to a fixed list or delete them, and save or load the view as a JSON file. The point of the project was to get hands-on with Electron and desktop packaging rather than to build anything flashy.

2022

Super Inventory


I built Super Inventory as the final project of a Web technologies course. It is an inventory web application for managing several locations and the products in them. I implemented the front end with React and the back end with Node.js, Express and an SQLite database.

Games

Games I built on my own in Unity, plus one school project in Unreal Engine

2025

The Yōkai Within


The Yōkai Within started out as the final project of a school game development course, but it ended up far larger than the assignment called for. Most of the skills behind it I picked up on my own along the way. It is a Souls-like set in Feudal Japan, built with Unreal Engine. For character movement I used Unreal's own Motion Matching system, which gives the character smooth parkour, edge climbing and vaults, while the environment visuals come from a Japan-themed asset pack I bought on sale (so the art assets weren't made by me). The gameplay systems, however, are all written by me.

The systems I built cover a lot of ground. Doors can be opened with keys or stay locked from one side. The inventory covers collecting the contents of chests, drag and drop, and set categories for gear such as consumables. The weapon system supports several weapons, each with its own animations and alternate attacks, and combat includes a lock-on targeting system to focus on one enemy at a time. In the world, a fog wall (a barrier that marks the transition between areas) and an illusory wall (a wall that looks solid but can be walked through to reveal a hidden area) add depth to exploration. The enemy AI comes in different types: archers and melee fighters that throw bombs when the player is out of reach.

Shrines act as checkpoints where the player can pray, restoring their health and respawning the enemies in the area. The game also includes map changes, a dungeon, a miniboss and collectables, a souls system, a leveling system with stat upgrades, and a main boss. The structure is built around a single main level: the player goes through a mandatory side dungeon and then returns to the main level for the final boss. One of the most laborious parts was the save system, which stores the state of every map and the player.

2023

Picture Perfect Pairs


Picture Perfect Pairs is a simple two-player memory game I built on my own to learn networked gameplay. It is played over the network with a single-player option, and uses Unity's Netcode for GameObjects. Players take turns flipping cards until the board is cleared, and whoever has the most pairs wins. Both players can agree to a rematch afterwards.

2023

Ammo Camp


Ammo Camp was the result of a ten-hour tutorial series I followed, building an Overcooked-style game about preparing recipes under time pressure. In my version the player prepares different types of cannon shells instead of dishes, and I made the 3D models myself. The series put a lot of weight on clean code, so it was where I learned the most about event-based architecture.

2021

Galactic Expansion


Galactic Expansion is one of my earlier games. The player grows a network of space stations, collects the galaxy's resources and defends their holdings against waves of attacking enemies. It is endless, and the goal is simply to survive as many waves as possible.

2021

Dash


Dash is a 2D roguelike I built in a single week, as a self-imposed challenge and without following any tutorials. The player starts in a randomly generated dungeon and heads for one of three possible bosses, with three lives and a dash ability to survive. Every defeated boss appears in the main menu. Looking back, I am still proud of how it turned out.

2020

The Battery


The Battery was a deliberately mean little game I put together in about a day. The player starts in an empty room where the only light source is running out of battery, and has to find a randomly placed replacement on the floor, then find the lamp again before the light dies. It was a quick throwaway experiment rather than a serious project, mostly about mood and randomised placement.

2020

Booster


Booster was my first game, and I designed it to be deliberately hard and unforgiving, a theme that carried into the rest of my games. The player flies a spaceship and tries to land on a landing platform across seven increasingly difficult levels; a crash sends the player back to the start. It was the first time I saw a small game through to the end.