School and Work



The following companies have been generous in the support of my research interests:

Research Projects

I've recently been interested in parallel computing, CUDA and GPU computing, and high performance computing in general. I'd love to advise more projects in these areas. And while there is significant overlap in application and domain, I'm happy to mentor student projects in the following areas.

Students interested in working with me should read my Senior Project Guidelines and ideally come to me with 2-3 project ideas the quarter before they would like to sign up to work with me.

Parallel Computing

Investigate performance characteristics of parallel systems. This is a very broad area, but could include: new programming models (see the Go programming language), cache coherence protocols, cloud structures for high-performance-computing (HPC), graphics-processing-units (GPU's), clusters, and more.


I've enjoyed advising students that want to get involved with the QL+ Lab on campus. Click here to see photos of Jon Monett, the founder of QL+, viewing demonstrations of student projects.

Sustainable Computing

Sustainability related projects include software and/or hardware based technologies to reduce power consumption or energy usage, novel ideas for hardware reuse, and applications of computing for economic, politcal, or social aspects of sustainability.

Code Generation

Making software more efficient. Improve performance, reduce energy or power, reduce code size, etc.

Mobile Computing

Professor Janzen and I have several Android phones available for students to work on projects with. There are too many potential projects in this domain to list here, but I'm especially interested in clever uses of the onboard hardware features and phone-to-phone applications.

Embedded Systems

Build something interesting with a microprocessor and some peripherals.