245 Woodhaven Road, Kitchener (Ontario) N2C 1V6
(519) 896-2626


Candidate for Master of Mathematics
University of Waterloo, Waterloo, ON, September 2010 - present Bachelor of Mathematics
University of Waterloo, Waterloo, ON, September 2005 - April 2010
  • Computing Research Association Outstanding Undergraduate Research Award Winner, Male Award (2010)
  • Faculty of Mathematics Alumni Gold Medal for academic excellence (2010)
  • Valedictorian, Faculty of Mathematics Class of 2010
  • UW Math Faculty Co-op Student of the Year (2008)
  • NSERC Undergraduate Research Award (fall 2008 and summer 2009)
  • RIM Work Report Award, (winter 2006 and fall 2006)
  • University of Waterloo President's Scholarship (2005)
  • SAS Institute National Scholarship (2005)
  • Millennium Excellence Scholarship (2005)


Research Assistant
Department of Combinatorics & Optimization, University of Waterloo, Waterloo, ON, (Summer 2009)
  • Researched algorithms for combinatorial optimization problems under the supervision of Dr. Jochen Könemann
  • Established relationships between geometric rectangle covering problems and priority covering problems on lines and trees
  • Developed a polynomial-time exact algorithm for solving weighted priority line cover instances
  • Proved the NP-hardness of the priority tree cover problem and developed several poly-time approximation algorithms for it
Research Assistant
David R. Cheriton School of Computer Science, University of Waterloo, Waterloo, ON, (Fall 2008)
  • Contributed to three papers in word combinatorics and formal languages under the supervision of Dr. Jeffrey O. Shallit
  • Established a tight upper bound on several classes of discrete autocorrelation functions of infinite sequences
  • Developed and proved many new theorems concerning the closure properties of formal languages
  • Improved the known asymptotic lower bound on the maximum length of a binary word avoiding abelian squares of a given size
Software Developer, Image Recognition
Semacode Corporation, Waterloo, ON, (Winter 2008)
  • Designed and implemented algorithms for analysis and decoding of images containing 2-dimensional barcodes
  • Developed proprietary new methods for fast image thresholding and barcode detection with rotational and skew invariance
  • Improved the success rate of Semacode's scanning and decoding algorithm from 34% to 99% while decreasing the running time
Math Developer
Maplesoft, Waterloo, ON, (Summer 2007, Fall 2006, and Winter 2006)
  • Designed, coded, and benchmarked a world class symbolic polynomial system solver employing Groebner Basis methods
  • Implemented a package of functions for manipulation of dense, multivariate polynomials over algebraic number fields
  • Developed a suite of fast numeric routines for computing splines and performing multidimensional data interpolation
  • Designed and implemented an algorithm to return piecewise solutions to systems of parametric linear inequalities


  • (with J. Könemann and D. Chakrabarty) "On Column-restricted and Priority Covering Integer Programs", in Proceedings of The 14th Conference on Integer Programming and Combinatorial Optimization (2010)
  • (with J. Brzozowski and J. Shallit) "Closures in Formal Languages and Kuratowski's Theorem", in Proceedings of the 13th International Conference on Developments in Language Theory (2009)
  • (with J. Shallit and T. Stoll) "Bounds for the discrete correlation of infinite sequences on k symbols and generalized Rudin-Shapiro sequences", Acta Arithmetica 140 (2009), 345-368
  • "Mass-point Geometry", Phys13News 118 (2006) 5-6


  • William Lowell Putnam Mathematics Competition, Honourable Mention (2006)
  • International Mathematical Olympiad, Bronze Medallist (2005)
  • Asian-Pacific Mathematical Olympiad, Silver Medallist (2005)
  • Euclid Mathematics Contest, Gold Medallist (2005)
  • Canadian Computing Competition, Gold Medallist (2005)