Sou aluno do 3º ano de Engenharia Informática na Universidade da Beira Interior (UBI). Atualmente, estou a desenvolver a minha tese de licenciatura focada em runtime monitoring para ambientes heterogéneos — desde microcontroladores edge até ao navegador — através de WebAssembly como camada de execução universal.
Universal Microservices for Application Monitoring — Compilação de monitores de lógica temporal formal em módulos WebAssembly portáteis para dispositivos IoT limitados.
O projeto utiliza especificações RMTLD3 (Runtime Metric Temporal Logic with Durations) e compila-as em monitores que correm de forma idêntica em:
| Target | Runtime |
|---|---|
| Native Linux/macOS | C++11 binary |
| Raspberry Pi Pico (ARM Cortex-M0+) | WAMR (WebAssembly Micro Runtime) |
| Cloud / Browser | WASI module |
Principais conceitos:
- Gerados automaticamente via
rmtld3synth. - Arquitetura de três ficheiros:
instrument.h→compute.h→monitor.h. - Segurança em tempo real garantida por ring-buffer lock-free (
rtmlib). - Lógica trivalente: TRUE / FALSE / UNKNOWN.
- Portabilidade total: zero alterações de código para mudar o target para WASM.
Stack: C++11 · WebAssembly (WASI) · WAMR · Docker · rmtld3synth . OCaml
| Project | Description | Tech Stack |
|---|---|---|
| OurProgress | App Android para gestão e descoberta de filmes (API OMDb). | Java · Firebase · Room |
| VotoInformado | App de apoio ao voto informado com API REST. | Java · JavaScript |
| Software-Incident-Management | Plataforma full-stack de tracking de incidentes. | JavaScript |
| ChessFX | Motor de xadrez com interface gráfica JavaFX. | Java |
| ProjetoFinal_CG | Projeto final de Computação Gráfica. | C++ · OpenGL |
| SO_ProbSched | Escalonador probabilístico de sistema operativo. | OCaml |
| KeyZero | Projeto desenvolvido para o hackathon Shift to Digital. | JavaScript · React |


