Obteve o doutoramento (2009) sob a orientação de Kai Koskimies (Tampere University of Technology) e Antónia Lopes (Universidade de Lisboa) na área de frameworks orientadas por objetos e linhas de produto de software.
Atualmente desenvolve a atividade de investigação em dois eixos principais:
- Componentes de software e usabilidade de APIs: formas automatizadas de compor e integrar componentes de software (linhas de produto); ferramentas de apoio à utilização e aprendizagem de APIs.
- Educação da programação: ferramentas pedagógicas para auxílio no processo ensino-aprendizagem da programação; sistemas de avaliação automática.
Investigador visitante na Carnegie Mellon University (2014) ao abrigo do programa CMU-Portugal, a convite de Brad A. Myers.
Investigador visitante na Aalto University (2020), a convite te Lauri Malmi.
Membro da comissão de programa das conferências Koli Calling International Conference on Computing Education Research (2017-2023) e INFORUM/SOFT-PT (2017-2023).