Alongside academic appointments, he has served as Associate Director and as Associate Director of Undergraduate Studies of the Cheriton School of Computer Science at the University of Waterloo. Prior to his position at the University of Waterloo, he served on the faculty of San Francisco State University, as a post-doctoral intern at Xerox PARC, and as an adjunct professor at Queen’s University during his Ph.D. studies.