I did my BSc in Artificial Intelligence and Data Science at FCUP/FEUP, University of Porto, and I am now finishing an MSc in Data Science.
The two halves suit each other. The degree gave me the AI side, how models are built and what happens inside them, and the master's gave me the data side, statistics, experimental design and the discipline of producing a result you can actually defend. I have ended up working at the seam between them, on whether a model's output can be explained and trusted rather than only measured.
That is what my MSc thesis is about: interpretability of large language models. I build tools that show what a Transformer attends to, and use those signals to detect and audit social bias in BERT and GPT-2.
Outside the thesis I build machine learning systems end to end, from messy data to something a person can actually open and use. I have worked on computer vision, robotics, audio, retrieval-augmented generation, reinforcement learning, tabular prediction, multi-agent systems and a fair number of web and desktop apps. The common thread is curiosity about why a model does what it does.
My Research Interests:
- Interpretability and mechanistic analysis of Transformers
- Explainable AI (XAI)
- Bias detection and fairness auditing in language models
- Faithfulness evaluation of explanations
- Human-in-the-loop and human/AI auditing workflows
I am open to:
- any collaboration work,
- machine learning projects (development or research),
- research internships and junior positions, and
- writing or reviewing on interpretability, XAI and evaluation.
- Attention Atlas | interactive platform for exploring attention in BERT and GPT-2, with a full bias-detection pipeline on top. Live demo
- detecting-genre-bias-tweets | how the demographics of annotators shape the labels they give, on the EXIST 2025 dataset, with clustering, association rules and a recommendation framework
- xai-ruralfires | explainability methods applied to rural fire risk
- benfica-rag | retrieval-augmented comparison of the electoral programmes of the two candidates in the 2025 Benfica elections, side by side, with page-level citations, in Portuguese and English
- claude-notebook-skill | notebook generation for academic-grade data science work
- analogic-watch-detector | reads the time from photos of analogue clocks, YOLOv8/YOLOv11 plus hand-angle geometry
- TabSynth | turns an audio recording into playable guitar tablature: pitch tracking, note segmentation and fretboard assignment
- robotics-plane-detection-3d-mapping | RANSAC plane detection to improve precision in 3D mapping, on point clouds from a Webots simulation
- hospital-backend | REST API for a hospital system, patients, admissions, progress notes and media, in Flask on Google App Engine
- regybox-strava-sync | writes the day's CrossFit workout into the matching Strava activity, unattended, on GitHub Actions
- sports-extension | floating always-on-top bar with live scores, in C#
- multi-agent-system-atc | decentralised multi-agent system for air traffic control
- bloxorz-game | puzzle game with solvers in BFS, DFS, IDDFS, Greedy and A*

