I am an Assistant Professor of Computer Science at Union College in Schenectady, NY. My specialty is software engineering in general and software design in particular.

In addition to courses in my specialty, I teach courses in Algorithm Design and Analysis and Operating Systems. I also occasionally teach a critical thinking course in the College's First-Year Preceptorial program. I'm also planning, with Chris Fernandes, courses in human-computer interaction (HCI).

In my research, I am trying to learn, through experiments, how software designers should design software. As part of that work, I am building tools to help novice designers. Recently, I have collaborated with Chris Fernandes on HCI research, developing new models and mechanisms for 'undo' commands.

I received my Ph.D. in 2005 from the Department of Computer Science at the University of Massachusetts at Amherst. Before that I spent three years working for Motorola in the Chicago suburbs. Prior to that, I got my Masters and Bachelors degrees from the Department of Computer Science at the University of Virginia, in 1996 and 1993 respectively.