Formou-se em Engenharia Informática em 1997 pela Faculdade de Ciências e Tecnologia da Universidade Nova de Lisboa (FCT/UNL). Obteve o grau de Mestre em Inteligência Artificial Aplicada em 2000 pela FCT/UNL sob a orientação do professor Luís Correia. Obteve o grau de Doutor em Informática em 2006 pela Faculdade de Ciências da Universidade de Lisboa (FCUL) sob a orientação do professor Luís Correia.
Exerceu actividade docente no Departamento de Electrónica, Telecomunicações e Informática da Universidade de Aveiro e no Departamento de Informática da FCUL leccionando disciplinas de diversas áreas científicas (Sistemas de Operação, Inteligência Artificial, Programação, Linguagens Formais e Autómatos, Base de Dados e Sistemas Distribuídos).
Participou nos projectos Europeus ASSISIbf e InfoHabitants. Foi co-investigador de projectos financiados pelo BioISI. É co-investigador principal no projecto INTERPHENO financiado pela FCT. É investigador contratado no projeto ExpoLIS financiado pelo FEDER. É membro colaborador das unidades de investigação Lasige e BioISI.
Foi membro de comités científicos de encontros científicos na área de Vida Artificial. Participou na organização de encontros científicos e de concursos de programação nacionais.
Os seus interesses de investigação estão centrados na aplicação de técnicas de aprendizagem automática a jogos genéricos e a problemas de classificação de dados reais.