Personal Projects

These are some of the projects I developed on my own or for my degree. There are much more projects I was a part of, but these are the ones I believe better represent my skills and knowledge.

Voice Interaction Personal Assistant (ongoing)

  • Java application running on a Raspberry Pi to interact with voice commands. Some functionalities are setting alarms and timers, scheduling reminders, switching on/off lights and weather forecast.
  • Challenges: using design patterns that allow expansibility and using adaptive natural language processing.
  • Technologies: Mostly Java, may use Prolog in the future, GitHub (link to project).

Academic Projects

Public transport route optimizer (3 people team project)


  • Itinerary calculator for a urban city with several means of transport (walk, taxi, bus, underground), that allows the user to specify separate priorities for time, distance and price of the journey.
  • Challenges: calculating the weight of edges for the algorithms to do an effective evaluation of paths
  • Technologies: C++, GitHub (link to project).

Developed with Gustavo Silva and Ricardo Cerqueira.

Multiplayer and multi-device pool game (2 people team project)


Demo on YouTube

  • Billiards game with Android devices as controllers and a desktop server playing the game itself.
  • Challenges: developing fast yet efficient communication protocols to improve gameplay quality.
  • Most important break-through: using TCP and UDP simultaneously, and using a heartbeat response system to detect user disconnection and allow reconnection.
  • Technologies: Java, Eclipse, Android Studio, GitHub (link to project), LibGDX.

Developed with Gustavo Silva.

Multi-application store counter manager (2 people team project)

  • Two Linux applications using shared memory to manage a store with several counters and clients.
  • Challenges: using synchronization methods to prevent data loss, deadlocks and race conditions.
  • Technologies: C, Linux, Eclipse, GitHub (link to project).

Developed with Gustavo Silva.