2009-present: MIT Lincoln Laboratory. Face recognition. Machine translation. Speech recognition. Graph databases.
2007-2009: EveryZing, Inc., now Ramp (BBN spinoff). Audio/video search using speech recognition technology. Systems development. Cloud computing.
1995-2007: BBN Technologies. Personalized Internet Newspaper. Architecture and systems design for speech recognition. Speech recognition technology and its applications: in-car, telephony, media transcription and search.
1993-1995: Ascom Nexion. Object-oriented work. Network management software.
1985-1993: Digital Equipment Corporation. Eastern Research Lab, Cambridge Research Lab. Object-oriented programming. Trellis/Owl programming language and environment. Pen-based computing.
1980-1984: Xerox Corporation. PARC and Office Systems Division. Smalltalk, Xerox Star, programming by example. (while a graduate student)
1979: Lawrence Livermore National Laboratory. S-1 computer project. (summer)
1975-1978: Bolt, Beranek, and Newman. BCPL compiler and other work. (while an undergraduate)
MIT: 1978, SB, Computer Science. Bachelor's Thesis: A Lisp Debugger for Display Terminals
University of California, Berkeley: 1981, MS, Computer Science; 1984, PhD, Computer Science.
Research on programming by example (see below).
Co-invented the overlapping register windows mechanism used in the Berkeley RISC I processor chip, and later in the Sun Microsystems SPARC family of processors.
My graduate work was in programming by example, also called programming by demonstration. In particular, I was interested in end-user programming and programming in the user interface.
My 1984 PhD thesis, entitled Programming by Example, describes PBE in a simulation of the Xerox Star office system. The system I built was called SmallStar, and was written in Smalltalk. I have the original source code and am very slowly trying to revive it.
My dissertation is available here in PDF and HTML form.
SmallStar is also described in Chapter 5 of the 1993 MIT Press book
Watch What I Do: Programming by Demonstration, edited by Allen Cypher, and co-edited by me and several other people. The entire book is available online.
Publications and Professional Activities
I am the original author of the UNIX more command (ca. 1978). Here's a short history of how it came to be written.