I completed my Ph.D. at the University of Waterloo, studying theoretical aspects of computer science. Specifically, I studied fixed-parameter tractability of graph problems and their relation to mathematical logic. I was supervised by Jonathan Buss.
I have an M.Sc. from the Department of Mathematics and Statistics, University of Victoria, where I studied algorithmic graph theory under the supervision of Jing Huang. I characterized the end-vertices of lexicographic breadth first search on proper interval bipartite graphs.
I am also interested in software engineering, particularly model-driven software engineering and formal methods. I completed an M.Sc. in model-driven software engineering at the Department of Computer Science, University of Toronto, where I was supervised by Marsha Chechik. Historically, my research has focused on explicating design uncertainty in software models, and mitigating the effects of uncertainty while modelling, but my interest in this field extends to all areas of model-driven software engineering.
I have also participated in the Google Summer of Code program twice, most recently working on proof compression methods for first order resolution proofs. I have also worked on integrating Java Pathfinder and PRISM model checkers in a project aptly called jpf-prism. The Javadoc for the code can be found here, while the code itself can be found here.
Although I grew up in Toronto, I obtained my B.Math. in combinatorics, optimization, and computer science at the University of Waterloo.
When I'm not conducting research, I like to read, play board games, catch up on the latest video game, or travel. I also enjoy the occasional fishing or camping trip, and I have recently starting cycling.