Concluiu o Doutoramento em Fundamentos de Computação na Universidade do Minho em 2009 com a tese " Visual Functional Programming – An Approach Based On Interaction Nets ". Anteriormente tinha concluído a sua licenciatura em Matemática e Ciências da Computação em 2004 também na Universidade do Minho.
Atualmente é professor auxiliar na Faculdade de Filosofia e Ciências Sociais da Universidade Católica Portuguesa, lecionando informática, ciência de dados, matemática e multimédia.
É também diretor do Instituto de Computação e Ciência de Dados.
Trabalha na aplicação de tecnologias para um mundo melhor.