I am a Computer Scientist, and I am committed to the productivity of people who create and maintain software. I have developed user-centered tool designs for programmers, I have investigated the nature of software development, especially the human factors, and I have taught undergraduate and graduate computing courses. I've also developed application software in a variety of domains over the years.
I spent many of the last 20 years at Sun Microsystems, working variously in Sun Labs, in the developer tools product division, and in one of the service divisions. In February 2010 Sun became part of the Oracle Corporation, and I now work in Oracle Labs.
I'm currently contributing to the Alphabet Soup project at Oracle Labs, which is building an implementation framework ("One VM to Rule them All") capable of delivering high performance for a wide variety of programming languages with modest implementation effort. I'm developing extensions to that framework that will support programming tools for languages implemented using AlphabetSoup technology.
The Maxine Inspector
I was previously a member of the Open Source Maxine Project, which developed the Open Source Maxine VM: a meta-circular research virtual machine written in Java, designed to be a highly approachable platform for VM research. Consistent with my commitment to developer productivity and tools, I served as principal developer of the Open Source Maxine Inspector: an all-in-one development support tool for the Maxine VM. The immediate target audience for the Inspector is the community of virtual machine developers, starting with the lab's Maxine team and transitioning out via Open Source into the virtual machine research community. A significant goal for the project in general, and for the Inspector in particular, was to make a VM more approachable for development and experimentation to a wider audience than has been possible in the past. We wrote up a nice retrospective.
High Productivity Computing (HPCS)
I contributed to Sun's High Productivity Computing Systems project, funded partly by DARPA. The paramount goal of that program was a 10x productivity gain for programmers in the massively parallel world of High Performance Computing. I was a member of Sun's Core Productivity Team, directing and coordinating work in this area. We developed an overall evaluation framework, as well as measurement technologies for software development productivity in the High Performance Computing community. The "P" in HPCS means "Productivity," which isn't understood as well as any of us would like.
Our group's working motto was "Tools Operationalize Productivity," and I'm especially concerned with the state of developer tools in the HPC community. I wrote a paper ("HPC Needs a Tools Strategy") about this for the 2005 Workshop on Software Engineering and HPC at ICSE '05. I intend that our work, together with DARPA and the other computer vendors, will lead to some much needed progress here.
The Extended Productivity Team produced a number of publications about this work.
Earlier Projects at Sun Labs
My earlier projects at Sun Labs concerned software development tools, for example as Principal Investigator of the Jackpot Project (whose technology was transferred into NetBeans by Tom Ball). I also created the technical vision and defined key technologies for the SALSA project; I helped re-engineer the Javac compiler for IDE embedding; and I have collaborated in a number of areas with the NetBeans team in Prague. My research focus has included:
- The human factors of software development
- Advanced program editing systems
- Source code analysis for developer tools
- Source code management and configuration control
- Software development methodologies
Here are some of the professional activities I find most important.
I'm on the program committee for the IEEE International Workshop on Source Code Analysis and Manipulation, and I served as program co-chair for the workshop in 2004.
I was invited to the 2007 Summer Institute sponsored by the University of Washington and Microsoft Research. The topic for that year's institute was "the Human Side of Software Development," with the goal of setting a research agenda for this area. It is great to see interest growing in this area, where much of my research has been focused.
In addition to spending time with my family, I teach a juggling class at our local elementary school in Mountain View, CA. I also chaired the school's Technology Committee for several years, where I led the effort to network the entire site, bring the school onto the Internet, and transition operations to leverage the new technologies. I was given the Special Technology Award by the school for that work, as well as a 2000 Silver Bowl Award for community volunteerism by the San Jose Junior League.
I speak German, having lived there for a total of nearly two years during the depths of the Cold War. I spent 6 months in the south, near Stuttgart, at the Stanford-In-Germany campus (Weinstadt-Beutelsbach in the Rems valley). I later spent a year in West Berlin as a Rotary Foundation Fellow in International Understanding, attending the Freie Universität Berlin and making friends on both sides of the Wall. In 1978, as a volunteer group leader for The Experiment In International Living, I took 13 students, ages 13-18, to Germany (Preußisch Oldendorf, near Minden) for a community homestay program with additional educational travel. I've since visited a few times on business, after the wall came down (what my German friends call "Die Wendung"), and the changes this has precipitated are extraordinary for those of us who knew the country before.
I enjoy the outdoors. I've run boats on quite a few whitewater trips (favorite rivers: Green in Utah, Salmon in Idaho), and I like to fly fish (favorite river: Deschutes in Oregon). I spent two seasons working for the logging industry in the Southeast Alaska wilderness; I worked in camps on Prince of Wales Island, although one of those camps was actually floating, anchored at the head of a body of water named Twelvemile Arm (nearest settlement: Hollis, Alaska). I could catch salmon within sight of where I lived, and I never tired of the spectacular scenery, despite the logging.