Professional AssociationsProfessional Associations: ACM | IEEE
more informationMore information: Apache UIMA project | Apache UIMA Project
I've been with IBM for many years, starting my career at the IBM San Jose facility as a summer student, after graduating from CalTech. The first part of my career was in IBM Development - working on development of Disk Storage technologies. One interesting project I worked on and have a (now expired) patent on was the development in the 1970's of the precursor to today's RAID technologies.
In the early '80s, I was posted for a two year assignment to the IBM Corporate EP&T (Engineering, Programming, and Technology) Staff, at IBM HQ in New York, working under B. O. Evans. After that assignment, my family and I decided to stay in New York, and I moved to IBM Research in Yorktown, and built up a group working on "Expert Systems" using the LISP language.
During this time, the Common Lisp standard was produced, and I built what was intended to be a short-lived "compatibility package" that converted IBM's mainframe Lisp system to Common Lisp - this package had a much longer than expected life!
In the mid '80s, my group produced the Enhanced Common Lisp Production System, or ECLPS, an IBM Product which ran on IBM Common LISP. This was a system based on the Rete technology pioneered in OPS5 systems, but seamlessly integrated into Common Lisp. This work grew out of earlier progress that advanced the Rete pattern matching technology.
In the late '80s, I became a Senior Manager within Research's Mathematics department, and managed a wide variety of projects, including projects in Data Mining,Natural Language Processing, Machine Translation, Knowledge Representation, Computer Music, Symbolic Computational Algebra (the Axiom system), Boolean Specification Language (a logic design methodology for hardware design used for complex hardware designs within IBM's hardware divisions) and others.
I helped kick off the IBM Deep Computing Institute, an initiative around IBM's supercomputing efforts, serving as Associate Director for several years, and later as a member of the Advisory Council.
In the mid '90s, I served as the research liaison to IBM's Global Business Intelligence Services (GBIS) organization. I had the opportunity to dialog with many customers and help them see opportunities for adopting data mining and text mining technologies.
Not wanting to stay completely on the management side of things, I continued to do occasional technical work. One project that was fun was the porting of Michael McCord's machine translation system onto a hand-held PDA - this held several language pairs and would translate text typed in or cut and pasted, into other languages, and also "speak" it in the other language - all running on the hand-held device. This appeared as an IBM Product: IBM's "ViaVoice Pocket Translator". Many years later, a colleague tried the code out on a cell phone, and found he could run it there!
In early 2000, I started contributing to the UIMA project, in both a Senior Management role, and also technically. I climbed the Java learning curve, and eventually contributed technology to UIMA (the JCas) that integrated data manipulation more seamlessly into the Java language. During this time I served as the Program Director for IBM's Institute for Search and Text Analytics - a cross divisional coordination and funding channel for work in these areas. I also setup a cross-divisional UIM Architecture Board to help coordinate activities related to UIMA across IBM, which I continue to run, today. I also served as the IBM Research Division coordinator for Open Source Software.
I have always greatly enjoyed technical work, and management work, while rewarding, was becoming relatively less enjoyable, so I voluntarily stepped out of my Senior Management role at the end of 2005 to focus on UIMA and related technologies. I led the technical efforts to put UIMA into open source - first on SourceForge, and then, as an Apache Incubator project. Apache UIMA graduated from the incubator to become an official top level Apache Open Source project in March of 2010, and I was appointed an Apache Software Foundation Vice President and Chairperson of Apache UIMA; I also was elected to be a member of the Apache Software Foundation. In the process of evolving our release processes at Apache, I've become an Apache Maven guru - that's the "build" system we use to build Apache UIMA.
During this period, I've also been a member of the DeepQA/Watson team, and contributed to the project in many ways, including developing very high performance implementations of basic data structures that exploit certain behavioral/usage properties. This work enabled large reductions in space needed for many of the internal data structures within DeepQA. I implemented a fail-safe very high performance content-server for IBM Watson, enabling it to rapidly access vast amounts of pre-processed information. I also integrated UIMA into Hadoop in a way that more effectively exploits multi-core processors.
The Watson project and its members was awarded the 2013 Feigenbaum Prize by the Association for the Advancement of Artificial Intelligence (AAAI), for this work.
My technical interests lie in software systems, languages, development environments, systems supporting group collaboration and effectiveness, and knowledge management. Outside of work, I am also an active chamber musician, playing cello in string quartets, and an organist and choir director.