Current

The main projects I am currently working on.

TEUP Website

Full redesign of the TEUP website using modern languages and technologies. Mainly focused on backend, database and REST API.

Personal

Go
MySQL
VueJS
Web Development Databases REST API

Personal Website

Updating and improving my personal GitHub Pages website built using Jekyll.

Personal

Markdown
HTML
CSS
Ruby
Web Development UI/UX Static Websites

GW2 Squire

Companion app for the popular MMORPG Guild Wars 2. Built using the Flutter framework.

Personal

Flutter
Dart
Mobile Development API Wrappers UI/UX

Past

Projects I have worked on in the past but have put on hold or don’t intend to update further.

Master's Thesis

Oct 2023

Noise-adaptive qubit routing strategy based on deep reinforcement learning. Qubit routing is a challenging and important step when compiling quantum algorithms for realistic architectures.

University

Python
PyTorch
Qiskit
Ray
NumPy
Pandas
LaTeX
Deep Reinforcement Learning Quantum Compiling Qubit Routing

Interactive Satellite Megaconstellation Simulation

Jan 2023

Satellite constellation simulator written in Rust with a Godot frontend, used to analyze the resilience of different orbital configurations and linking strategies.

University

Rust
Python
Godot Engine
LaTeX
Modeling Simulation

OXID-8

Jan 2023

CHIP-8 / S-CHIP emulator written in Rust. Runs as a RetroArch core and supports several execution 'quirks' that certain programs rely on to function properly.

University

Rust
RetroArch
LaTeX
Emulation Systems Programming

Tabular

Dec 2022

Domain-Specific Language (DSL) for extracting and manipulating tabular data from multiple file types (JSON, XML, unstructured text). Supports auxiliary operations (merge, concatenate, average, sum, sort) in addition to loading and saving.

University

Java
Xtext
Domain Specific Languages Data Extraction Data Manipulation

Solver for Capacitated Vehicle Routing Problem

Jul 2022

Algorithms for solving large-scale CVRP instances (finding routes for a fleet of vehicles with multiple deliveries and a limited carrying capacity).

University

C++
CMake
Python
LaTeX
Data Structures Map Matching Search Algorithms Metaheuristics

Sands of Vengeance

Jun 2022

Soulslike action RPG with an egyptian theme. A tyrannical pharaoh murders the main character's brother, trapping his soul in a great pyramid.

University Game

Unity
Game Design Level Design UI/UX

Evolution through Natural Selection

May 2022

Agent-based simulation of the evolution of a simple organism through natural selection. Agents must find food to stay alive and reproduce, passing on their specific set of genes. Includes visualization and analytics components.

University

Python
Mesa
Multi-Agent Systems Simulation Genetic Algorithms

Multi-Agent Collectible Card Trading

May 2022

Simulates environment where agents can trade, buy & sell collectible cards. Value assigned to individual cards is subjective (e.g. collectors vs. competitive players). Agents can trade with other nearby agents or sell cards via a marketplace service.

University

Java
JADE
Multi-Agent Systems Game Theory

Enjeteering

Apr 2022

Side-scrolling endless runner with a comedic FEUP-inspired theme. Similar to games such as Jetpack Joyride. Developed using the FOSS Godot game engine.

University Game

Godot Engine
Aseprite
Game Design Pixel Art Sound Design

Decentralized Timeline Service

Jan 2022

Decentralized Twitter-like timeline service. Users publish messages to their timeline and subscribe to other users. Subscribers help store and forward content. Relies on an implementation of the Kademlia DHT and uses RPC for communication.

University

Python
Distributed Systems TCP Sockets RPC

Unified Search System for Steam Games

Jan 2022

Aggregates Steam game data from multiple sources (public datasets, APIs, website scraping), allowing for more complex queries and searches.

University

Apache Solr
Python
Pandas
LaTeX
Information Retrieval Data Processing Data Analysis

Reliable PUB/SUB Service

Nov 2021

Publish/Subscribe service implemented using the ZeroMQ library. Several fault tolerance mechanisms in place to ensure exactly-once message delivery (durable subscriptions, crash recovery).

University

Python
ZeroMQ
Distributed Systems Publish/Subscribe Fault Tolerance

Peer-to-Peer Distributed Backup Service

Jun 2021

P2P file backup service implementing the Chord distributed hash table protocol. Uses Java secure sockets, thread pools and non-blocking I/O.

University

Java
Distributed Systems Threads Non-Blocking I/O TCP Sockets SSL Fault Tolerance

Treasure Bot

Feb 2021

Submission for Global Game Jam 2021. Puzzle game where you have to guide a robot towards a stash of treasure using the fewest instructions possible.

Personal Game

Godot Engine
Aseprite
Game Design Level Design Pixel Art

Dextra

Jul 2020

Submission for the 2020 GMTK game jam. Puzzle platformer where the player character is always moving right. Instead of controlling the character directly, the player must control the environment to ensure their character finishes the levels unharmed.

Personal Game

Godot Engine
Aseprite
Game Design Level Design Pixel Art

Samuel's Escape

Aug 2018

Submission for the Ludum Dare 42 game jam. Platformer where you play as Samuel the slime, and must climb a dangerous pit, dodging fireballs, avoiding spikes, and collecting coins along the way.

Personal Game

Godot Engine
Aseprite
Game Design Pixel Art