Portfolio

Unit Converter

TauriRustVueTypeScript

A unit conversion desktop app powered by Tauri. It serves as a learning example on using Tauri, a cross-platform desktop app framework with Rust as backend and many options for frontend.

FreeST VSCode LSP Extension

TypeScriptHaskell

Visual Studio Code extension for FreeST language support. It provides error highlighting and commands to directly run in terminal or load into the interpreter. It’s split into its frontend (in TypeScript) and its backend (in Haskell) which provides functionality using FreeST’s compiler’s constructs.

FreeST Website

Jekyll

A Jekyll and GitHub Pages website that has now become a home for FreeST. New versions are released here alongside a changelog. It also serves as a learning starting point with its tutorial and documentation for standard libraries. On the academic side, it has a compendium of all publications, talks and posters produced since its first inception.

Hack your calculator @ Ciências

TI-BASICJekyll

Programming activity for FCUL’s 2023 Open Day where high-school students learn and try making games for a TI-84 calculator. The activity was held in a lab and made available at a website hosted by GitHub Pages.

JConsole

JavaXtext

Domain Specific Language (DSL) designed and implemented in the context of the Domain Languages course at FCUL. jConsole’s purpose is to simplify and accelerate software development and testing by having a quick and easy way of creating a console application in which one can integrate software freely.

Raspberry Pi Buzz Quiz

PythonRaspberry Pi

A fun quiz game based on free and open APIs. The controllers are PlayStation 2’s Buzz controllers (or buzzers) for answering questions. For better language compatibility, it also uses Google Translate’s API to translate questions and answers as best as possible to a language other than English.

BitBin

TruffleSolidityReact

A custom blockchain based of of Ethereum developed in the context of Crypto Summer. BitBin’s goal is to improve citizen participation and interest in recycling using blockchain and gamefication with an added system of crypto rewards.

API-EstadoServicoML

JavaMaven

Java API library adapting Lisbon’s subway system API for waiting times, line state and station information. Meant for integration in other applications by providing a simple 1-to-1 conversion of the original API calls to Java ones.