Tom Emerson

Computer Scientist
Kestrel Institute


Thomas Emerson is a computer scientist with the Kestrel Institute in Palo Alto, California, a non-profit computer science research institute. "The research at Kestrel focuses on the automation of software development through the use of formal methods and knowledge-based approaches such as program synthesis," explains Tom. "My primary responsibility is in the application of Kestrel's technology to the construction of software that deals with real-world problems such as transportation scheduling."

"Kestrel's program synthesis technology requires the formal specification of problem domains and algorithms. Most of my work here has been with a system called the Kestrel Interactive Development System (KIDS), in which these formal specifications are expressed in a language that somewhat resembles the first- order predicate calculus. A successor to KIDS, Specware, is also under development; this uses algebraic specifications in a framework that comes from category theory."

Tom has a B.S. in mathematics from the University of Minnesota, and an M.S. and Ph.D. in mathematics from the Courant Institute at New York University. He originally started as an undergraduate at the University of Chicago, but dropped out after three years to work as a programmer. He worked for about 10 years as an application and systems programmer on IBM mainframe systems, followed by 11 years at AT&T Bell Laboratories doing a variety of software work. During that time he returned to school to complete his B.S. and started to work part-time on his M.S. and Ph.D., finishing up in 1995.

"After moving to California 1n 1991," Tom continues, "I worked for a computer manufacturer on development of a version of the UNIX operating system for a computer manufacturer and then on various testing and performance analysis tools for SunSoft (the software development company within Sun Microsystems, Inc.); I moved to Kestrel after completing my doctorate. I would say that my career path has been a bit unusual for a math Ph. D. -- I began working as a programmer before I finished college, so by the time I finished graduate school I had already been 'in industry' for 25 years. I had already decided that I would not try to make a career change to an academic job; at this stage of my life I had no desire to start my career all over on the bottom rung of academia, so it wasn't a difficult decision to make.

"My background is unusual for Kestrel -- most of the researchers here have doctorates in computer science, not mathematics. Kestrel is a research institute, but my work has a very practical focus -- although we sometimes use some very abstract mathematics (e. g., category theory), we also have to implement systems that will actually run and produce answers for users. This can be quite challenging, but it's satisfying to build something that works and has an impact."

"Another aspect of my job I enjoy is that it's scientifically eclectic -- it involves both mathematics and computer science, with a bit of operations research mixed in."

Tom admits that it is difficult to predict what will be used ultimately on the job, but he recommends courses in (non-theoretical) computer science, as well as courses in the mathematics applied to areas such as operations research. These have helped him on his job, but so has category theory, a course he never imagined would someday be useful.

"For someone who comes from an academic background who is thinking of going into industry, I think it's worth keeping in mind that academia is a world unto itself, with different values and expectations than the industrial sector. So it may be necessary for someone who has been a full-time student for a long time to re-orient their thinking somewhat to understand what an employer expects. The focus in most industrial jobs is on developing products and services, not on publishing papers or discovering new results for their own sake."


Question and Answer Forum for Tom Emerson


    Return to Archived Profiles and Forums