Projects

The following are some projects I've created/worked on that I feel proud of.

Mycroft-youtubedl Skill


A skill for the mycroft A.I. assistant. It allows the user to search for an youtube video, download it and then add it to the play queue (among other functions). It was designed to be a free alternative to the spotify and pandora mycroft skills.

PBG


Pacman hook to save both Pacman native and AUR packages in github gists, and utility to sync packages between machines.

Skane, Royale Edition


A 2D shooter game based on the classic Snake. It has both a singleplayer and a multiplayer mode. It was developed in low-level C: coding the interaction with RTC, mouse, keyboard, VGA and serial port by reading/writing registers, and using interrupt routines.

Maww


Program that allows you to have an animated background on Linux (X11).

AllRGB


Convert an input PNG image file to a an output PNG image file where every pixel is a different color from all the others.

Segmentation Fault


Webpage themed around "Collaborative Q&A": allows users to ask and answer each others' questions, with bounty and achievement features. Uses Bootstrap, Docker, Laravel, and PostgreSQL.

Router placement


Given a building plan, decide where to put routers and how to connect them to the fiber backbone to maximize coverage and minimize cost (HashCode 2017 final task). Solved as an optimization problem using various algorithms: hill-climbing, simulated-annealing, and genetic algorithm.

Dry beans classification


Unsupervised learning problem about classifying beans from a dataset according to 16 attributes. Beans can be from 1 of 7 different classes.

Multicast file backup system


Backup files with a given replication degree in a network using multicast communication. The files can be restored and disk space can be reclaimed by each peer.

TCP file backup system


Backup files with a given replication degree in a chord network using encrypted TCP connections. The files can be restored and disk space can be reclaimed by each peer.

Jmm compiler


A compiler written in Java and JavaCC. It compiles Java-- (Jmm for short), a subset of the Java programming language, to Bytecode (by first compiling to Jasmin). The compiler does syntactic and semantic analysis, and optimizes the generated code.

Become my buddy


A website for arranging animal adoptions. Users can post pictures and information about animal so other users can propose themselves as the new owners. Written in HTML, CSS, Javascript, and PHP without the usage of external libraries, frameworks, or other resources like that. Inspired the amazing project Be My Friend.

Serial port file transfer protocol


Low-level implementation of a file transfer protocol through the serial port. The app allows the configuration of the baud-rate and packet sizes, and is error resilient.

DroneYourFood


Flutter app to order food and beverages in conferences and have them delivered by drones. This is only a proof of concept, so there aren't real payment options or drones.

Skane dweller


A game where you control a giant snake that must kill to grow and survive. Dodge and retaliate against the human armies, and destroy everything in your path. Don't forget to hide yourself underground, where you'll be safe for as long as you can hold your breath.

olc (Os Lusíadas Camões)


Read Os Lusíadas by Luís Vaz de Camões from your terminal. This is a command line tool to read the original epic by Luís de Camões in your terminal. The format and original implementation were taken from bontibon/kjv.