Licenciado en Ciencias de la Computación por la Universidad de Costa Rica (1985), y Doctor en las Ciencias Naturales por la Facultad de Ciencias de la Computación de la Universidad de Kaiserslautern, Alemania (1992). Es desde 1985 profesor e investigador de la Universidad de Costa Rica, donde imparte cursos relacionados con la inteligencia artificial y la computación científica en el programa de grado de la Escuela de Ciencias de la Computación e Informática y en el Posgrado en Ciencias Cognoscitivas. En la UCR realiza además actividades de investigación y de colaboración con diversas iniciativas de investigación, como la Red de Investigación en Computación Científica, en la que participan varias unidades académicas de la UCR. Actualmente realiza investigaciones dirigidas al modelado computacional y al modelado cognoscitivo de problemas relacionados con la toma de decisiones, la simulación de procesos biológicos y físicos, la cognición social, y la integración de métodos de la inteligencia artificial y de computación científica de alto desempeño a esas soluciones. Entre 2006 a 2015 fundó y trabajó como Director del Colaboratorio Nacional de Computación Avanzada (CNCA) del Centro Nacional de Alta Tecnología (CeNAT) del Consejo Nacional de Rectores. También en el CeNAT fungió como Director Ejecutivo de la Red Avanzada de Investigación y Educación del Consejo Nacional de Rectores (RedCONARE), capítulo costarricense del consorcio Red CLARA (redclara.net), la red de internet avanzada de las universidades de América Latina. Es socio co-fundador del Consorcio de Servicios de Computación Avanzada para América Latina y el Caribe (SCALAC), iniciativa de colaboración en la que participan centros de procesamiento de datos científicos de México, Costa Rica, Colombia, Venezuela, Ecuador, Brasil, Chile, Argentina y Uruguay, que busca proveer servicios de computación científica de alto rendimiento para científicos de la región latinoamericana. Es además miembro de los Comités Científicos de las conferencias CLCAR (Conferencia Latinoamericana de Computación de Alto Rendimiento) y CCGRID (Cluster, Cloud and Grid Computing in Latin America).