I hold an appointment as Senior Lecturer in the Department of Computer Science at Princeton University. My focus is computer science education, primarily courses within the introductory computer science sequence. I have also enjoyed my time teaching upper-division courses in functional programming and software-engineering design projects, and supervising more than 70 semesters of undergraduate independent work.
I am an advisor for incoming BSE first years in the class of 2030, having also advised incoming classes of 2029, 2028, 2021, 2017, and 2016. I have also been an advisor for computer science majors in the classes of 2024, 2021, and 2017. I served as the department's placement officer from 2014 through 2026.
I completed my Ph.D. in the Department of Computer Science and Engineering at the University of Notre Dame in Spring 2010. At Notre Dame I worked in the Cooperative Computing Lab under Prof. Doug Thain. More information on my distributed computation research is available on the research page of this site, including a full curriculum vitae. Before attending Notre Dame I grew up as a military brat, moving around the US and Germany before eventually settling down for undergrad at the College of William and Mary in Virginia.
- Doctor of Philosophy of Computer Science and Engineering
- University of Notre Dame (Notre Dame, IN)
- Dissertation: Abstractions for Scientific Computing on Campus Grids
- MSCSE Thesis: Flexible Object Based Filesystems for Scientific Computing
- Bachelor of Science
- The College of William and Mary (Williamsburg, VA)
- Concentration: Computer Science



