About Me

I am a Computer Scientist, 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 25+ years at Sun Microsystems working mostly in Sun Labs (later Oracle Labs ).  I also worked in Sun's developer tools product division, and on the DARPA-funded HPCS supercomputer project where I was lead author on Sun’s final technical report Productive Petascale Computing.

I’m now retired from full time research in favor of consulting and part time teaching, currently  in the Computer Science and Software Engineering Department at Cal Poly San Luis Obispo (where I also taught in the early 1980’s).  I sometimes teach sections of their fourth year course Programming Languages I, using the Typed Racket language and following the approach in Shriram Krishnamurthi’s Programming Languages Application and Implementation (second edition). I also support PhD students  in my personal network, with occasional coaching of the sort best provided from outside their own research communities (two of them recently graduated).

GraalVM

My final project at Sun/Oracle Labs was the open source GraalVM project: a language implementation framework ("One VM to Rule them All") capable of delivering high  performance for a wide variety of programming languages with modest implementation effort.  Starting early in the implementation of the VM, I prototyped very low overhead, always-on, built-in support for programming tools with a new kind of optimized  “Instrumentation Framework”. This extension, embedded in the highly optimizing runtime engine, enables tools such as debuggers, profilers, etc. to exploit the fundamental high-performance polyglot nature nature of the platform and operate smoothly across language boundaries. By starting integration of this support very early on in the project, I enabled significant capabilities that the platform would otherwise not have achieved.

The Maxine Inspector

I was previously a member of the 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.  This project developed key technologies that made GraalVM possible.

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.

Our Team, together with collaborators,  produced a number of publications about  productivity in the HPC domain.

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

Professional

Here are some of the professional activities I find most important.

I occasionally serve on program committees, for example The International Conference on the Art, Science, and Engineering of Programming currently, and earlier the IEEE International Working Conference  on Source Code Analysis and Manipulation where  I was program co-chair in 2004. I recently co-organized and served as program chair for the Workshop on Comprehension of Complex Systems.

I sat on the Industrial Advisory Board of the Department of Computer Science and Software Engineering at Cal Poly San Luis Obispo from 2000-2018, where I had been on the faculty 1979-1983.  I left the board in 2018 and rejoined the faculty as a part-time lecturer.

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.

Personal

In addition to spending time with my family and studying music, 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 Wende"), 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.

Now that I’m (almost) retired, I’m making up for not having as much musical education as I in hindsight would have liked. I’m studying music theory and learning to play the string (upright) bass as my “retirement hobby”.