Doctor Enginyer en Informàtica per la Universitat Autònoma de Barcelona (UAB) l'any 2006, Magíster en Tècniques avançades d'automatització de processos el 2001 per la UAB i Enginyer en Informàtica, també per la UAB, l'any 1998.
Becat pel ministeri amb una beca de Formació de Personal Investigador (FPI), pasa un any a l'Imperial College of London, com a visitador acadèmic, treballant a l'ICParc, departament de planificació i control de recursos. Allà rep formació en Programació amb Restriccions i optimització, i col·labora en projectes pel RAC d'Anglaterra i Railtrack.
Ha fet docència a la UAB entre el setembre de 1998 i l'agost de 2005. El setembre de 2005 s'incorpora com a professor de plantilla dels Estudis d'Informàtica, Multimèdia i Telecomunicació (EIMT) a la UOC. Des de setembre de 2006, és codirector acadèmic del Màster en Bioinformàtica i Bioestadística que ofereix actualment a la UOC. Les seves activitats de docència es concentren principalment en la programació, la computer science i la bioinformàtica. A partir de gener de 2007 s'incorpora com a Director del Programa d'Enginyeria Informàtica dels EIMT.
Els seus àmbits de recerca principals inclouen la modelització de sistemes discrets fent servir
Xarxes de Petri, la optimització amb tècniques de Programació amb Restriccions, lús de
metaheurístiques i simulació, i la ludificació de l'aprenentatge. És autor de diversos articles en
revistes i congressos tan estatals com internacionals. Ha participat en projectes i convenis de
recerca com a membre de l'equip de recerca i com a investigador principal. Ha estat investigador
del LOGISIM, centre de simulació i optimització de sistemes logístics, de la Xarxa de Centres de
Suport a la Innovació Tecnològica (XIT) del CIDEM. Actualment pertany al grup de recerca en
enginyeria del programari de la UOC (GRES-UOC) on investiga la verificació mitjançant l'ús de
Programació amb Restriccions de models fets amb UML+OCL. Per altra banda, codirigeix el programa
ICSO (Internet Computing and Systems Optimisation) de l'IN3 on treballa en el disseny d'eines
híbrides per a la resolució de problemes combinatoris.