Graduado em 1994 como Bacharel em Análise de Sistemas pela Universidade de Ribeirão Preto (UNAERP), onde também concluiu a especialização em Análise de Sistemas em 1996. Tornou-se mestre em Ciência da Computação na área de Inteligência Artificial pela Universidade Federal de São Carlos (UFSCar) em 1999 e doutor em Informática na Educação pela Universidade Federal do Rio Grande do Sul (UFRGS) em 2007.
Atualmente, é professor adjunto da Universidade de Brasília (UnB), estando vinculado ao curso de Engenharia de Software (concurso público n.163 de 22/08/2013 e resultado no DOU de 10/02/2014, página 27), mas atua nos diferentes cursos de Engenharia oferecidos pela UnB Gama (FGA). Coordena o Laboratório de Tecnologias Educacionais (LaTEd) da UnB. Tem experiência na área de Tecnologia da Informação (TI), Engenharia de Software, Ciência da Computação, com ênfase em Inteligência Artificial, Banco de Dados, Programação Computacional e Tecnologias Educacionais, atuando, principalmente, nos seguintes temas: Sistemas Tutores Inteligentes, Gestão do Conhecimento, Banco de Dados, Sistemas de Informação, Governança de TI, Lógica Fuzzy, Metodologias de Ensino e de Aprendizagem, Aprendizagem Significativa, Metodologias Ativas e Monitoria Estudantil (Pestalozzi).
Líder do Grupo de Pesquisa do CNPq - Informática Aplicada à Educação - vinculado a UnB e membro associado da Sociedade Brasileira de Computação (SBC), sendo ainda coordenador do curso de Pós-graduação lato sensu em Informática na Educação (especialização) da UnB.
Foi colaborador em projetos envolvendo recursos tecnológicos e informáticos para a Empresa Brasileira de Pesquisa Agropecuária (Embrapa) junto ao Laboratório de Quarentena Vegetal (LQV) e o Laboratório de Nematologia do Cenargen (Embrapa Recursos Genéticos e Biotecnologia) de Brasília (DF).