More recently, I have become interested in software engineering questions, or more precisely, in finding ways to improve programmer productivity, especially when constructing large, complex, object-oriented systems. In particular, I have been working on Binary Component Adaptation, a new approach to software reuse that can dramatically improve reusability while retaining a strict separation between component provider and component reuser. Other past work includes programming tools such as query-based debuggers and light-weight, VM-independent support for Java design-by-contract constructs. For more information on all of these projects, see the OOCSB home page and the publications page.
I am no longer at UCSB and work at Google.
When I'm not doing Computer Science, I'm probably playing with our Leonberger dog Yoshka. (If you're thinking of buying a dog, first learn about how not to buy a puppy. Never buy from a pet store...)