57 projects
2026

repomgr is a tool I made to manage my Github repositories and projects that I want to show on my portfolio website, allowing me to sort and organize them efficiently.

I found it easier to create the todo app that's perfect for me instead of wasting time to look for an existing one.
2025

Aalto Defence Hackathon 2025 project: TRAK is a comprehensive system for tracking civilian resources and analyzing the capabilities those resources can provide.


Junction 2025 project: High-speed object motion extraction using event camera streams (DAT format) with clustering and per-rotor RPM estimation. It can track propellers in real time using a C++ multithreading architecure and determine the propeller RPMs separately.
2024
A high-performance market analysis platform for SavySoda’s Pixel Starships. This tool monitors the game’s complex virtual economy in real-time, providing both standard search tools and advanced analytical capabilities for power users.

HackUPC 2024 project: RackRanger connects multiple server racks across various locations to a single Grafana dashboard. This dashboard shows real-time temperature and humidity data for all the racks. It also detects and displays any tampering events, like someone trying to mess with a server rack.

A project I made for fun, this is a web app that allows you to submit 'reviews' for any possible subject, like life or Geometry Dash. Integrates OpenID Connect authentication with Keycloak.

Scrapes data related to the Finnish Matriculation Examination, specifically YLE survey results and YTL point requirements.
2023

This project is a Discord bot and online platform to allow users to link their in-game Pixel Starships account to their Discord account, and sync various data across multiple Discord servers. With around 10 000 users, the bot is used by the official PSS Discord and many of the most popular community servers.


Simple program to blur an image, do edge detection or other convolution kernels. Uses the EGL DRM platform to initialize OpenGL, so it can be run even without a display server. Run the program without arguments or with -h to see usage.

Quickly tells you your meal times at the school of TSYK. just copy paste your schedule from Wilma, and the site automatically parses it.

Completely end-to-end encrypted and anonymous messaging app. The only backend is a Postgres database, so everything works transparently.

Minimalistic but addictive implementation of the classic snake arcade game. Written in pure HTML and JS.

This tool automates creating an encrypted virtual private network, allowing direct port access between clients that are behind different networks and NAT layers. It is built on the Wireguard protocol.

Displays feedback to the city of Turku from a public API. Includes links to a map that shows the relevant location.

Web application that renders truth from a proposition, including the result of that proposition. The logic is implemented in Python and run on the web with Pyodide. Latex is rendered with MathJax.

Play chess against a WebAssembly Stockfish with NNUE evaluation. Stockfish is compiled from C++ with Emscripten.

Simple mindmap creator. No ads or login. I also made this one because almost everything requires an account these days.

Calculates interesting statistics and insights from received Wilma messages.
2022

Full-stack food order complete with user accounts, third-party authentication providers, an API with Swagger docs and online payments using Stripe.

Music guessing game similar to wordle. Connects to the SoundCloud API to play songs, which you have six tries to guess correctly with the help of autocomplete. The sample duration increases each guess.

Classic arcade game with a twist. Also a Progressive Web App demo that auto-updates automatically and works offline.

Wordle, but it uses HTML-native input elements for you to enter the guesses in. This makes the game more difficult, as you can't see the keyboard with colors.

Reaktor 2022 pre-assignment. Fetches drone data and keeps track of no-fly zone offenders. I forgot to add auto-restart, but it's been running with 0 crashes since 11. December.

Quickly generate a powershell command for a reverse shell. Use responsibly, at your own liability.

Make images from text. Also doubles as a pixel art editor. It's not super complicated, just serializes the text into RGB data that it renders on to a canvas. However, some tricks are involved.

Time visualizer: renders a clock to help visualize time spent on things every day of the week.

A wrapper around the math editor used in Finnish exams that it allows saving and restoring multiple pages, and of course dark mode.

Efficient implementation of John Conway's Game of Life, using HTML5 canvas.

SvelteKit app that gathers and displays weather data from multiple sources, including every city in the world with over 5000 citizens.

See how difficult today's wordle is. Also includes previous days. This webapp hooks to the datamuse.com database for word frequencies in English literature.

Trivia game. Get a high streak! I made this because all of the others kind of sucked.

Scrapes language-to-language dictionaries from Quizlet and the publishing platform Otava, and creates a practise test for them.

Can't get everyone together in the same place? Just deploy this to have a deterministic algorithm generate recipients for everyone!

OCaml program to render the mandelbrot fractal (and others). Should be very fast at generating a top-level image. Only dependency is the graphics library.
2020

JavaFX demo app that uses most of the framework's features (available at the time). I also made my own dependency injection and caching framework for this project.

Complex rendering engine written with C++ and OpenGL that supports text rendering, model loading, multiple moving objects and light sources, viewer controls...

Another battleships game, this time in Java and JavaFX. It's also one of my first projects, so the code might not be the best.

Basic dungeon crawler with collision detection and infinite room generation. Made in C++.

Object-oriented C++ rendering engine with shaders based on the Phong lighting model with multi-light support using shader storage buffer objects.

Binary patching framework for retro game AssaultCube. Made in C++, for educational purposes only.

Singleplayer version of the classic boardgame. Reads a configuration file for ship locations.
2019

One of the first games I made, rewritten to modern Java standards. Includes JUnit 5 tests, dependency injection with Guice and native images.

A simple file hosting site that also works as a pastebin. Features include an ip logger, download links, text editing, listing files and temporarily trashing them.








