Back to main page


















Projects
In this page you can find my portfolio of projects that I've developed or contributed to in the past. They range from web development, AI, distributed systems, among other topics.

WASMICO - Micro-containerization in Microcontrollers for the IoT
Nov 2021 - Jun 2022
Individual project
C++WebAssemblyArduinoESP-IDF
- Masters Thesis, with a final score of 17/20.
- WASMICO is a micro-containerization platform built on top of Arduino and ESP-IDF that allows the execution of WebAssembly modules on-demand on a resource-constrained IoT device. By using a Wasm3 interpreter, it supports any programming language that can be compiled to WASM, like C++, Go, Rust, among many others. It supports operations that enable the user to control and manage the complete lifecycle of their tasks and containers, all through the HTTP protocol, in an over-the-air (OTA) manner that does not require a reboot of the device or a physical connection to it.
- WASMICO also acts as an abstraction between the high-level specifications and the device's low-level capabilities, like reading and writing to pins and printing to the serial port. Furthermore, it increases code portability to other devices, and isolation and security, given that a crash of a task does not affect other running tasks or the rest of the system.
- Benchmarked the tool against other state-of-the-art solutions, both in terms of efficiency and computation and in terms of RAM and memory usage, with WASMICO having the overall better performance.

Labcentric - Monitoring and Management System for Labs
Oct 2020 - Jun 2021
Team of 8 people
PHPLaravelJavascriptHTMLCSSPostgreSQLPythonFlaskOpenCVMQTTNode.jsRaspberry PiDockerNginxHerokuGitlab CI/CD
- Team leader of a project developed for the Dr. Ricardo Jorge National Health Institute.
- Developed a web app for management of reagents, samples, procedures and executions, results, and other important data for the institute.
- Developed a system that monitors user actions during a lab procedure, by identifying QR Codes on reagents and recognizing voice commands.
- Allowed users to configure input/output devices that best suit their needs, by designing an extensible and scalable plugin‐based architecture.
- Integrated a CI/CD pipeline for linting, testing, and deploying the application on a Heroku server.

Paper Parser for Design Pattern Repository
Mar 2021 - Jun 2021
Team of 5 people
TypescriptNodePostgreSQLMQTTDocker
- Developed a microservice, part of a design pattern repository application, that parses and extracts all relevant information that can be found on research papers about design patterns, such as the paper's title, authors, abstract, list of described patterns, and footer information.
- Allowed the support for different paper structures and types by implementing design patterns such as the Strategy and Builder patterns.
- Increased the reliability of the system and made it robust to crashes and failures by using a crash recovery database, that ensures that if the parser starts processing a paper, it will eventually output its details.

Artwork Recognition using Bag of Words and CNNs
May 2021 - Jun 2021
Team of 4 people
PythonJupyter NotebookKerasSKLearnMatplotlibSeaborn
- Developed a system that can perform classification of images, applied in this case to the artwork collection dataset provided by the Metropolitan Museum of Art in New York.
- Implemented several methods and techniques to solve the problem, like using a Bag of Words descriptor + classifier, and using Convolutional Neural Networks.
- Evaluated the performance of each method using relevant metrics, and discussed the results.

Photon - 3D Graph Visualizer of High Growth Opportunities on the Energy Market
Mar 2021 - May 2021
Team of 4 people
TypescriptNodeReactNeo4jDockerOWLProtégé
- Developed a tool capable of extracting and analyzing energy related data from various sources, detecting high growth opportunities within the energy market and industry, and showcase that information to the user in a 3D graph interface.
- Extracted the most up-to-date news and information about the energy market by using the Usearch API and social media APIs from Reddit and Twitter.
- Defined and collected data for several energy sectors by using the Open Energy Ontology (OEO) to recognize energy-related areas and concepts.

3D Data Acquisition using a Structured Light Technique
Mar 2021 - Apr 2021
Team of 4 people
PythonJupyter NotebookOpenCVNumpyMatplotlibscikit-spacial
- Developed system that calculates the 3D coordinates of points in an image lit by a shadow plane, by using structured light techniques.
- Implemented all necessary stages in the process, including the camera calibration process, the light projection system calibration, the edge and line detection algorithms and the final calculation of 3D coordinates.

Distributed Agent-Based Emergency Call System w/ Simulation & Visualization
Sep 2020 - Dec 2020
Team of 3 people
JavaJADESAJaSRepast
- Developed a multi-agent system capable of receiving emergency calls from a certain location, and selecting the best vehicles for the emergency.
- Developed a visualization tool that creates a map that shows all the vehicles in the system, the current emergencies and connections representing the allocation of a vehicle to an emergency.

Intercompany Process Automator App
Sep 2020 - Dec 2020
Team of 4 people
JavascriptReactBulma (SCSS)NodeDockerPostgreSQLPrimavera Jasmin API
- Promoted automation of purchase/sales processes between companies by developing a web application that integrates with the Primavera Jasmin API, that defines and handles all the transactions based on previously defined business processes.
- Offered overall view of transaction processes between companies by creating an interface that provides an overview of all related documents.

Statically Verified Tree Set Implementation
Dec 2020 - Dec 2020
Individual project
Dafny
- Developed a statically verified implementation of a Tree Set (Sorted Set), using a Binary Search Tree, in the Dafny programming language.
- Implemented operations for insertion, deletion, checking if an element is in the set, returning a sorted sequence of all the elements, and more.

Java-- Compiler
Mar 2020 - Jun 2020
Team of 4 people
JavaJavaCCJasmin
- Developed a tool that serves as a compiler of .jmm files, written in the Java-- language, a subset of the Java language.
- Implemented various compilation stages, like the lexical and syntactic analysis, the semantic analysis, and the code generation phase.
- Worked on several compiler optimizations: liveness analysis, register allocation, constant propagation and folding, and dead code removal.

NewsLab - Collaborative News
Mar 2020 - Jun 2020
Team of 4 people
PHPLaravelJavascriptHTMLCSSPostgreSQLDocker
- Developed a web app/platform to write and share news and opinions, enabling people to interact with the articles by rating and commenting.
- Performed various tasks regarding planning and specification, from developing frontend page mockups to designing the database structure.
- Adopted an Agile methodology to develop this project, working in iterations and selecting user stories to implement in each one.

Covid Forecast Tool
May 2020 - Jun 2020
Team of 3 people
PythonJupyter NotebookSKLearnPandasNumpyMatplotlibSeabornKaggle datasets
- Extracted Covid-19 data from a Kaggle dataset that contained the confirmed, death, and recovered cases for each day and for each country/region; developed and trained several regression models with the goal of successfully predicting Covid-19 cases and deaths.
- Used data visualization Python libraries to create graphs in order to better understand data patterns.
- Utilized the following models and methods: Neural Networks, Stochastic Gradient Descent, Support Vector Machines, K-Nearest Neighbours and Random Forest.
- The Kaggle dataset used can be found here.

Distributed Backup Service for the Internet
May 2020 - Jun 2020
Team of 4 people
JavaShell
- Developed a distributed peer-to-peer system in the Internet that allows the backup of a file divided in chunks in other peers; also allows the restoration and deletion of a file, and the reclaim of a peer's personal space.
- Protected the system against faults and raised its stability and scalability by using and implementing the Chord Protocol.
- Assured the privacy and integrity of the messages, and increased system security by implementing secure communication channels with JSSE.
- Achieved high degrees of concurrency and parallelism by using thread-pools and non-blocking I/O.

OpenCX - Mobile App for Conferences
Oct 2019 - Jan 2020
Team of 4 people
FlutterSQLiteGherkinBluetooth
- Contributed to an open source project by developing a mobile app for conferences, that allows the user to see the conference's program and to make a custom schedule, receiving push notifications when an event is about to start and also allowing BT scanning for near-by events.

The 7th Guest Infection
Nov 2019 - Jan 2020
Team of 2 people
JavascriptWebCGF (WebGL library)Shaders (Vert and Frag)Prolog
- Developed a fully playable version of the game The 7th Guest: Infection, with various game modes (Human vs Human, Human vs Computer), (Computer vs Computer).
- Implemented the game mechanics and various AI difficulties on a Prolog server.
- Developed a graphical interface with WebGL, using lighting, shaders, textures and animations, that communicates with the Prolog server.

Pharmacy Delivery Routing
Dec 2019 - Jan 2020
Team of 2 people
Prolog
- CLI application for a "distribution company" that calculates the best routes for delivery trucks that need to go to certain pharmacies to deliver goods.
- The problem is an instance of the Vehicle Routing Problem with Time Windows (VRP-TW); the goal is to generate the schedule of the distribution company, while minimizing both the number of trucks used and the overall distance traveled by the trucks.
- Done using Prolog and its clpfd restrictions library.

House Renting Web Application
Oct 2019 - Dec 2019
Team of 3 people
HTMLCSSJavascriptPHPSQLite
- Developed an Airbnb-like web platform for house renting, using vanilla HTML, CSS, Javascript and PHP, using various web development techniques like AJAX.
- Had in mind web security principles and prevented various types of attacks and vulnerabilities, including XSS, CSRF and SQL injection.

Security Van Routing
Mar 2019 - May 2019
Team of 3 people
C++GraphViewer (Java API)
- Calculated paths for trucks with pick up and delivery of items along the way, tested in graphs with up to 21.2k nodes and 21.7k edges, by implementing various "shortest path" (and similar) algorithms (Dijkstra, Floyd‐Warshall, and more), and some heuristic algorithms.

Color Shooter
Oct 2018 - Jan 2019
Team of 2 people
CMinix OS
- Developed a Space Invaders style game, where the user had to shoot the different colored enemy ships with bullets of the same color.
- Developed a graphical interface for the game and added mouse and keyboard functionalities by programming various device drivers and computer peripherals (mouse, keyboard, timer, video card).
