Current professional activities
I recently retired from my position as a Distinguished Engineer in the Emerging Technologies department of IBM's software group, and I now hold the honorary title of IBM Distinguished Engineer Emeritus. My most recent project at IBM focused on developing and promoting the success of Web-based client technologies for traditional desktop platforms as well as for mobile phones and other smaller devices. Much of my work over the past ten years has been as one of IBM's representatives to the World Wide Web Consortium (W3C). I am a co-author of the SOAP 1.1 specification, and a co-editor of the SOAP 1.2 W3C Recommendation. I was for approximately ten years, starting with its formation in 1999, a member of the W3C XML Schema Working group; I made significant contributions to the design of the XML Schema Definition Language (XSD) and was a co-editor of the original XML Schema Definition Language Recommendation. Prior to my work on XML and SOAP I made significant contributions to the design of Java Beans. If you're interested in learning more about my professional life at IBM, there's a short biography posted on their site.
In 2004, I was named by W3C Director Tim Berners-Lee to one of three appointeed positions on the W3C's Technical Architecture Group (TAG). The TAG, which includes 5 elected particants as well as Tim himself, is the senior technical body responsible for the architecture of the World Wide Web. In early 2009, Tim asked me to serve as chair of the TAG, and I was in 2010 reappointed to serve as chair through January 2012.
Lotus Development Corp
From 1992 to 1995 I was a Consulting Engineer at Lotus Development Corporation, where I was responsible for compound document and distributed object technologies. In particular, I was responsible for both strategic analsysis of and implementation of technologies such as Microsoft's OLE 2.0, Component Object Model (COM), and Opendoc. I led the team that built the common implementation used by Lotus Smartsuite, including Lotus 1-2-3, Lotus Freelance, and Lotus Wordpro to implement OLE 2.0 compound document technologoies. I also led Lotus strategic analyses of Microsoft's early Internet and Java efforts.
IBM Cambridge
In autumn of 1998 I returned to the IBM Cambridge Scientific center, where for four years I headed the software team for the Datacube. Datacube was one of the first prototypes of a massively parallel, fault tolerant system, based on commodity components, and designed primarily for data processing as opposed to numerically-oriented applications. Datacube nodes used PC-grade CPUs, disks, and memory; software algorithms were used to implement fault-tolerant, scalable, distributed, Unix-compatible data stores, network routers, and prototype transaction processing infrastructure. A fault tolerant network maintained any-to-any connectivity in the face of link failure, and software algorithms automatically activated and reconstructed (using then-new RAID techniques) spare nodes to replace any hardware that failed. Datacube was designed to support up to 4096 nodes, but due to funding limitations, the largest operational protype we built consisted of ten nodes. (I'm hoping to post some of the old Datacube papers and presentations here one of these days.)
MIT Project Athena
From 1985-1987 I represented IBM Research on campus at MIT Project Athena. In addition to consulting on the design of various Athena systems, I built early prototypes of collaborative software systems based on distributed access to shared relational databases. Among the applications built using this system was the very popular Whatsup¿ calendar, one of the first open, shared bulletin board applications. The system was also used for several courseware offerings.
The Locus Distributed System
From 1982 to 1985 I was employed by the IBM Palo Alto Scientific Center, but the majority of my work was in partnership with Locus Computing Corporation, a UCLA spinoff. I made a variety of contributions to the design and implementation of the kernel for Locus, one of the earliest and most fully distributed Unix implementations. I helped developed replication logic for the filesytem, I implemented communication drivers, and later I implemented kernel support for the IBM mainframe vector facility (somewhat similar to the MMX and similar SIMD facilities available on modern microprocessors.)
Stanford University
From 1980 to 1982 I was at Stanford, where I obtained a Masters degree in the department of Computer Science. During this time, I was on the research team of Professor John Hennessey, and I contributed to the implementation of a state of the art optimizing compiler (PASCAL*).
IBM Palo Alto
From 1978 to 1980 I represented IBM on campus at Stanford University. I participated in the design of the Perseus distributed operating system, and supported other systems research at Stanford.
Early work in IBM — VM Passthrough
I joined IBM at its Mohansic Lab in Westchester, NY in Sept. 1974, starting as what IBM called a Junior Programmer. Although I contributed to a number of interesting projects on the then new VM/370 operating system, including one of the earliest display-oriented (as opposed to line-oriented) debugging systems, the work for which I was best known was largely completed within my first two years with the company. I wrote the core code for what later evolved into IBM's VM Passthrough Program Product (hmm...looks like IBM has taken that page down, and the Internet Archive doesn't have a copy — I'll keep the link up for awhile in case a copy turns up somewhere) . Passthru (as everyone called it) provided a telnet-like terminal network for users of IBM mainframes. Melinda Varian provides more details in her VM and the VM Community: Past, Present, and Future . Quoting from page 50 (notes in parenthesis are from me):
Another important innovation announced in 1980 was Pass-thru. The original author of the system that became Pass-thru was Noah Mendelsohn. [...] (he wrote) a server that provided the basic Pass-thru function in an elegant and extensible form. Bill Anzick, who had advised Noah on V6 (internal codename for pre-product versions) from its beginning, took over the project in 1977 and expanded it into the product that was announced in 1980 as Pass-thru.
Although SHARE (the IBM computer users group) had not asked for something like Pass-thru, as soon as we saw it, we wanted it badly. As soon as the tapes arrived, they were rushed to our computer rooms, and the product was installed right away, all over the world. Pass-thru had been used extensively inside IBM before it was released, so it had already been fairly well debugged. Many of us who had moderate-sized Pass-thru networks never saw a failure.
Passthru was written entirely in assembler code, and it included its own multitasking operating system supervisor, which ran as a virtual machine. 35 years after the first code was written, the VM/Pass-Through Facility product remains available (p. 19) to users of IBM's zSeries mainframes.
MIT and Select Computer Systems
I majored in Physics at MIT, but I did take the notorious 6.251 systems course taught by John Donovan, and Stu Madnick.
While at MIT, I worked part time during the year and full time over the summer for Ray Kurzweil at Select Computer Systems. We built inventory control systems (which resistor is in which bin?) and language translation systems (from 7074 assembler language to COBOL!); both of these systems were written in FORTRAN. This work was done after Ray had graduated from MIT, but before he built his reading machine, his musical instruments or his career as a "futurist".
Cigarette Components, Ltd.
Over the summer of 1970, I was employed as a computer programmer by Cigarette Components Ltd., a research lab near London, England. I wrote FORTRAN routines to analyze gas chromatography data on the ATLAS computer at the University of London.
High School Studies Program
For several years, Paul Schneck taught a summer program for high school students at the Goddard Institute for Space Studies, near Columbia University in New York City. In 1969, when I took the program, we ran on the Institute's IBM 360/95. There were only two '95s in existence, but that summer they were the fastest machines in the world. We learned FORTRAN, 360 Assembler (including imprecise interrupts on the '95), and an amazing amount about hardware architecture (carry look-ahead adders), operating system design, compilers, etc. I think the program was called High School Studies Program (either HSP or HSSP), but I'm not sure that's right. (I'd be interested in finding more references or in hearing reminiscences from those who participated. It was a wonderful experience!)
Bronx High School of Science
My career in computing began at the Bronx High School of Science in 1968 where, like many who went on to significant careers in computing, I had the opportunity to program their IBM 1620 computer.