Biography

I am a Postdoctoral Research Associate at the University of Oxford, collaborating with Professor Marta Kwiatkowska on the FUN2MODEL ERC project.

I hold a Ph.D. in Computer Science from Instituto Superior Técnico (IST), Universidade de Lisboa (UL). My Ph.D. was conducted in collaboration with the Czech Technical University (CTU) in Prague, with research hosted at INESC-ID, IST in Lisbon, and CIIRC, CTU in Prague. I had the privilege of being advised by Vasco Manquinho at INESC-ID and Mikoláš Janota at CIIRC. Additionally, I was a Junior Researcher in the Automated Reasoning and Software Reliability (ARSR) group at INESC-ID. For five years, I contributed to teaching as an Invited Teaching Assistant for the Computer Science Department at IST-UL.

My academic background includes a BSc and MSc in Information Systems and Computer Engineering from IST-UL. During the final year of my MSc, I worked as a Research Assistant at Carnegie Mellon University (CMU), collaborating with Ruben Martins. I also gained industry experience as a Research Intern at OutSystems, a leading Portuguese software company.

My work has been recognised with several awards, including the Vencer o Adamastor 2025 prize, which acknowledges innovative contributions by young scientists in Portugal; the ACM SIGSOFT Distinguished Paper Award at ESEC/FSE 2021; and the Excellence in Teaching IST Award in 2021, and 2024.

Interests

  • Automated Reasoning
  • Automated Verification
  • Program Repair
  • Program Synthesis
  • Formal Methods
  • Artificial Intelligence

Education

  • PhD in Computer Science and Engineering, 2025

    IST, Universidade de Lisboa

  • MSc in Information Systems and Computer Engineering, 2019

    IST, Universidade de Lisboa

  • BSc in Information Systems and Computer Engineering, 2017

    IST, Universidade de Lisboa

Recent Publications

Counterexample Guided Program Repair Using Zero-Shot Learning and MaxSAT-based Fault Localization, AAAI 2025

In this paper, we propose a novel approach that combines the strengths of both FM-based fault localization and LLMs, via zero-shot …

InvAASTCluster: On Applying Invariant-Based Program Clustering to Introductory Programming Assignments, JSS 2025

This paper proposes InvAASTCluster, a novel approach for program clustering that uses dynamically generated program invariants to …

MENTOR: Automated Feedback for Introductory Programming Exercises, PhD Thesis

This PhD thesis presents MENTOR, a semantic automated program repair (APR) framework designed to provide Automated Feedback for …

CFaults: Model-Based Diagnosis for Fault Localization in C with Multiple Test Cases, FM 2024

This paper introduces a novel fault localization approach for C programs with multiple faults. CFaults leverages Model-Based Diagnosis …

C-Pack of IPAs: A C90 Program Benchmark of Introductory Programming Assignments, APR 2024

A C90 Program Benchmark of Introductory Programming Assignments (IPAs), that contains semantically correct, semantically incorrect, and …

Experience

 
 
 
 
 

Postdoctoral Researcher

Department of Computer Science, University of Oxford

Jan 2025 – Present Oxford, UK
I am a Research Associate in the Department of Computer Science at University of Oxford, working with Professor Marta Kwiatkowska on the FUN2MODEL ERC project.
 
 
 
 
 

Ph.D. Candidate

INESC-ID, Instituto Superior Técnico, University of Lisbon

Oct 2020 – Dec 2024 Lisboa, Portugal
I was a Computer Science PhD candidate at IST, advised by Vasco Manquinho and Mikoláš Janota. My research host institutions were INESC-ID, IST in Lisbon and CIIRC, Czech Technical University in Prague.
 
 
 
 
 

Junior Researcher

INESC-ID

Jan 2020 – Sep 2020 Lisboa, Portugal
I was a Junior Researcher at INESC-ID, working under the supervision of Professor Vasco Manquinho and Professor Ruben Martins.
 
 
 
 
 

Research Assistant

Carnegie Mellon University, SCS​

Feb 2019 – May 2019 Pittsburgh, USA
During my MSc program, I had the opportunity to collaborate with Professor Ruben Martins on my thesis. Our primary focus was on a system called SQUARES, which aims to generate SQL queries by utilizing input-output examples. This falls under the domain of Programming-By-Examples, a subfield of computer science. We developed a novel encoding for programs for Enumeration-based Program Synthesis.
 
 
 
 
 

Research Intern

Outsystems

Sep 2018 – Nov 2019 Lisboa, Portugal
During my MSc thesis, I had the privilege of collaborating with OutSystems. My supervisors from OutSystems were Miguel Ventura and Miguel Neves.
 
 
 
 
 

Research Intern

INESC-ID

Sep 2018 – Dec 2019 Lisboa, Portugal
In the final year of my MSc, my thesis was supervised by Professor Vasco Manquinho. We developed a novel SQL synthesizer, SQUARES, capable of generating SQL queries using Query Reverse Engineering (QRE), i.e., from input-output tables. QRE is a subfield of Program Synthesis whose goal is to generate programs that satisfy a given high-level specification.

Awards & Honors

Vencer o Adamastor (VoA) - 3rd Edition

This 20,000€ scientific prize acknowledges innovative contributions by young scientists (<40y) in Portugal across the fields of computing, electrotechnics, and related disciplines.

ELISE Mobility Grant

Up to 5000€ for a research stay in Prague, Czechia.

COST Travel Grant

COST Travel Grant to attend AITP 2022 under COST Action CA20111.

Excellence in Teaching IST Awards, 2021 and 2024

ACM SIGSOFT Distinguished Paper Award

FCT PhD Scholarship

Scholarship to pursue a four-year Ph.D., with research hosted at INESC-ID, IST, U. Lisboa (UL), and CIIRC, Czech Technical University (CTU) in Prague, Czechia.

REN BSc Merit Award

Academic Excellence Diplomas

Research Talks

Are Large Language Models Robust in Understanding Code Against Semantics-Preserving Mutations?

Counterexample Guided Program Repair Using Zero-Shot Learning and MaxSAT-based Fault Localization

LLM-Driven Automated Program Repair Using MaxSAT-based Fault Localization

CFaults: Model-Based Diagnosis for Fault Localization in C with Multiple Test Cases

C-Pack of IPAs: A C90 Program Benchmark of Introductory Programming Assignments

Learning Variable Mappings to Repair and Verify Programs

Learning Variable Mappings to Repair Programs

SQUARES: A SQL Synthesizer Using Query Reverse Engineering