Doutorado em Engenharia Informática pelo Instituto Superior Técnico/Universidade de Lisboa, Mestre em Engenharia Informática pela Faculdade de Ciências e Tecnologia da Universidade Nova de Lisboa, Licenciado em Matemáticas Aplicadas (ramo de Informática) pela Universidade Lusíada de Lisboa, lecciona as disciplinas de Programação Orientada para Objectos e Computação Gráfica das Licenciaturas de Informática e Informática de Gestão, bem como a disciplina de Interfaces Pessoa-Máquina do Mestrado de Engenharia Informática e de Telecomunicações.
Realizou investigação na área do desenvolvimento de software dirigido por modelos.
A par da actividade de docente, desde 1995, trabalhou em diversas empresas com actividades associadas à produção de software.