Wind Farm.  Palm Springs, California.

Engineering Projects

completed by Philip Greenspun, sort of part of his resume

I've divided this into two categories: Note that this is just a representative sample of the hundreds of projects that I've worked on and that it includes software collaboratively developed with others, notably Jin S. Choi, Eve Andersson, Tracy Adams, Andrew Grumet, John Patrick Morgan, and Shimon Rura.

Software Developed

Nuclear power plant cooling tower.  Oswego, New York. Development environment for MySQL/PHP and Android applications, including a pre-populated Facebook system, distributed as a VirtualBox virtual machine to MIT students in January 2011.

Rearchitecture of the server infrastructure, reducing page load times from 10 minutes to less than 1 second. (2009)

Rearchitecture of the online community server infrastructure (2006-2007) to expand capacity beyond 4 million visitors per month.

eCommerce system for print shops using high-end HP printers and companies that needed to get jobs done (1998-2000; customer: Hewlett Packard)

Online community for participants in conferences organized by Oracle Corporation (in 1999; customer: Oracle Corporation)

World Bank community for people working in international development (see

Siemens Sharenet system, a pioneering knowledge sharing system at the time (1998), implementing ideas from Boston Consulting Group (see this paper).

A data warehouse for Levi Strauss (Web interface on top of a standard dimensional SQL data model in an Oracle8 database).

A Web front-end for a Levi Strauss factory that makes custom-sized clothing.

WimpyPoint, a collaborative slide presentation development system sort of like today's Google Docs (1997).

A range of monitors that go into the ArsDigita Server Architecture, a way of delivering reliable Web services., a Web service that lets people figure out which factories are in their neighborhood, what chemicals each factory is discharging, and what the health effects of those chemicals might be. The service allows individuals to communicate with polluters by filling out a Web form on my server, which sends a FAX to the company.

ArsDigita Community System, an open-source toolkit for building collaborative Web services (e.g., The system architecture is described in Chapter 3 of my second Web nerd book. The software is the basis for OpenACS, which in turn is the basis for MIT Sloan's .LRN toolkit.

Range of database-backed Web services for consumers, including birthday and street-cleaning reminder systems.

Range of database-backed systems for Web publishers, including threaded discussions, comment server, clickthrough measurement system, link manager, and server uptime monitor (see, a system for matching employers with recent college graduates. Uses a scoring system combining traditional SQL with full-text retrieval.

Complete electronic commerce Web site for MIT Press.

System architecture of the relational-database backed Web sites of the Hearst Corporation, a $3 billion publisher. Selected Web servers and database management systems, developed the SQL data models, designed the page flow, hired and supervised programmers, wrote code.

MIDCAB Registry, a system that lets heart surgeons enter data about various types of bypass operations. These data go into a relational database so that it is possible to do queries to figure out the procedures with the lowest rates of mortality and other complications.

Electronic Medical Record System, a standard for exchanging medical data over the Internet. Interfaced a large Oracle relational database from Boston Children's Hospital to the World Wide Web so that a standard Web browser can function as a front-end for query and update, achieving multi-platform access at a savings of $1 million. (written in SQL and perl)

KTA, a computer-aided litigation system. This Macintosh Common Lisp program represents as objects legal claims, elements and facts and the relationships among them. The user interface lets an attorney look at a case in multiple ways.

(with Henry Wu) 8051 code for a TV commercial recognizer. This included keeping a record of all tagged commercials seen, time of broadcast, number of fields, video quality and color burst presence, as well as an interface to an IBM PC. Software developed in C. (1990 for Isosonics and VidCode)

graphical, multi-window simulation environment for digital audio recorder (1988 for Isosonics), including

Financial information system to support securities traders for Fidelity Investments in 1987 (price data feeds from FactSet; charting and display done in Macintosh Common Lisp; think "Bloomberg lite")

ConSolve system for automating earthmoving, entirely implemented in Lisp (1986-1989 for ConSolve), including

Ammunition storage depot layout system built on top of ConSolve system for US Army. Developed crude "expert system" for implementing Army rules on ammunition layout. (1988 for ConSolve, system was quickly taken over by Walter Gillett)

Surface Mine design and planning software built on top of ConSolve system. Automatic development of subsurface model based on boring data. Automatic calculation of tons of rock removed per ton of burnable coal extracted. Performed interpolation of coal quality from boring data. (1989 for ConSolve)

robotic anti-tank weapons simulator, including quad-tree-based terrain model and innovative graphical terrain specification techniques. Used class hierarchy for efficient modelling of numerous types of vehicles and weapons. Developed on Symbolics Lisp Machine with multiple simultaneously-refreshed windows on B&W and color screens. (1985 for Textron Defense Systems)

(with Patrick O'Keefe) MCAE system for automatic the design of large steel structures -- the "ICAD system". All work was done in 1984 and 1985 on Symbolics Lisp Machines. O'Keefe developed most of the specification language and compiler. I developed the following:

rules in the ICAD language to automatically design air-cooled heat exchangers (1985 for ICAD)

Lisp system to design the pressure vessels in air-cooled heat exchangers that could not be designed with the ICAD language. This software calculates fluid flow back and forth from one side of the heat exchanger to the other, adding steel plates to coerce fluid flow. It also adds stiffeners for structural integrity, depending on the pressure of the fluid and whether or not the fluid is dangerous. (1985 for ICAD)

Automatic Layout tools for VLSI, with an emphasis on bus cells and automatic implementation of finite state machines (1984 for Symbolics)

Graphics primitives for Symbolics Operating System (1983)

Various demonstration, educational and testing programs for Symbolics, including multi-player real-time Space War game using multiple Lisp Machines and Ethernet (1983-4)

Numerous minor enhancements and fixes to Symbolics Operating System (1983-4)

Packet-switched network simulator using mouse and multiple windows on Symbolics Lisp Machine (1983 for Hewlett Packard)

Design tools on Symbolics Lisp Machine for RISC CPU implemented in TTL (1982-3 for Hewlett Packard)

(with Steve Milne) digital sound editor for executive dictation on Wang word processor (1981 for Wang)

Real-time multi-tasking operating system for 68000-based speech recognition system (1980 for Verbex)

Algorithms to distinguish noise from speech (1980 for Verbex)

Virtual memory architecture for VAX-like 32-bit computer (1979 for Computervision)

Database and data analysis software for Pioneer Venus, written in Fortran and assembler on PDP-11/70 and IBM 360/91 (1978 for NASA)

Miscellaneous simple programs in BASIC, Fortran, PL/I for small companies and individuals (1976-78)

Hardware Developed

The studio of the artist Moby Dick.  California Highway 247, NE of Palm Springs, California.

(with Henry Wu and Bruce Keilin) custom DSP for digital audio error correction

(with Henry Wu and Bill Dally) phase locked loops for recovering clock and data from Manchester-coded digital audio signals

(with Henry Wu and Bruce Keilin) phase locked loops for recovering clock and data from video signal filled with digital audio data. Achieved design goal of keeping jitter 90 dB down.