He worked at Hewlett-Packard for 15 years and for a brief period, as a private consultant. He generally teaches courses in introduction to programming, UNIX, programming languages, algorithms, compilers, bioinformatics, evolutionary computation, machine learning and robotics.