Sus áreas de interés incluyen: lenguajes de programación, análisis automático de código fuente, procesadores de lenguaje, diseño de sistemas embebidos y educación en ingeniería.
Profesor del Departamento de Ingeniería de Sistemas e Industrial en la Universidad Nacional de Colombia, sede Bogotá. Sus áreas de interés incluyen: lenguajes de programación, análisis automático de código fuente, procesadores de lenguaje, diseño de sistemas embebidos y educación en ingeniería. Cuenta con más de 50 publicaciones científicas en revistas, libros y conferencias internacionales. Actualmente lidera el grupo de investigación PLaS (Programming Languages and Systems) y es el Coordinador de la Maestría en Ingeniería de Sistemas y Computación.