His research focuses on systems software and computer architecture. He is well versed in the internals of the Python programming language, as he is currently developing a light-weight Python interpreter for embedded systems in his research. He has also taught many of the introductory computer science courses at Rice, including Computational Thinking, Algorithmic Thinking, Introduction to Program Design, and Introduction to Computer Systems. He is the chairman of the curriculum committees for both the Department of Computer Science and the School of Engineering at Rice. Prior to joining Rice, he received his Ph.D. from MIT.