RESUME FOR PETER EPSTEIN
SUMMARY
Mr. Epstein has over six years of industry experience designing and
developing software for Palm OS. He also has many
years of industry experience with Smalltalk. His strong object oriented
analysis and design skills, and solid foundation in computer science make
him adept at designing and implementing systems which are both efficient
and flexible enough to meet changing project goals. His areas of expertise
are as follows:
Palm OS
User interface design and implementation for handheld devices
Experience with all phases of the Palm software life-cycle from conception
through maintenance
Build system maintenance and source code control in a large corporate environment
Palm software distibution, including web site authoring, distribution to
archives, and arranging for reviews
Algorithm optimization using complexity analysis and profiling
Storage optimization using custom compression algorithms
Creation of robust systems using automated testing, debug ROMs,
assertion checking, and other custom tools.
Smalltalk
Component level and high level user interface design
Object oriented design patterns and frameworks
Concurrent and distributed system design patterns
Object oriented and relational database use with Smalltalk
WORK HISTORY
Palm and PalmOne Inc, Santa Clara and Milpitas, California
Mr. Epstein worked in a variety of roles during his five years at Palm.
On his own initiative, he improved the calculator to use a fixed point
decimal math system, ensuring that every calculation gives precisely
the expected result.
He implemented the attention manager for Palm OS 4.0, allowing multiple
alarms from any number of applications to be presented in a single
dialog. For this same operating system release, he implemented time
zone and daylight savings time support, collaborating with a team in
the design of this feature.
When Palm spun off their operating system company, PalmSource, Mr.
Epstein returned to the role he was hired to perform, improving the
built-in applications. For the Tungsten T series devices, he added
many features to the calendar application. In doing so, he worked in
both a designer and implementer role, collaborating with others in the
design. Support for 5-way navigation was added to the application, and
the week and month views were enhanced to be more consistent with the
day view and to convey more information through the use of color. Other
new features that Mr. Epstein implemented include major extensions to
Calendar to better match Outlook capabilities, including displaying
contact birthdays, adding a new event location field, streamlining the
user interface for repeating events, and other as-yet unreleased
features.
When the Tungsten T project was nearing completion, Mr. Epstein took on
the role of manager of the handheld applications team. He rose to this
challenge, delivering a reliable suite of applications on time. Mr.
Epstein has also taken on responsibility for source code control
strategy. He has maintained the build system used for the handheld
applications, and he has maintained and enhanced many applications and
libraries when their primary developer was eliminated during layoffs.
Mr. Epstein always strives to produce the best possible Palm devices.
He tirelessly analyses the pros and cons of various proposed solutions
to a problem, always from the perspective of the end user. When a
solution is decided upon, he implements it quickly but carefully. His
value to the company can be seen in his long stay with them through
many rounds of layoffs as the company evolved and changed direction repeatedly.
Period: November 1999 to Present
Role: Employee: Palm OS developer.
Environment: PC and Macintosh. Metrowerks CodeWarrior for Palm OS (various versions).
Perforce source code control system. MPW and Jam. ARM Developer Studio.
Applied Thought Corporation, Belmont, California
Mr. Epstein developed his second Palm OS application,
BeamBooks, as a member of a small team. This unique application uses the
infrared capability of these devices to form a network, allowing distribution
and synchronization of data across this network. Mr. Epstein was responsible
for the product's user interface design, for much of the user interface
implementation, and for design and implementation of a reliable bidirectional
infrared data transfer protocol built on top of the IrLAP protocol defined
by IrDA. A detailed knowledge of the IrDA specification was required for
this latter task. Mr. Epstein learned that in order to develop robust applications
in C, strict coding practices, designing in support for automated testing,
and custom debugging tools are required. He also learned something about
what is involved in taking an application from concept through development
to distribution, marketing, and maintenance.
Period: September 1998 to November 1999
Role: Palm application designer and developer.
Environment: Macintosh. Metrowerks CodeWarrior for Palm OS R3,
R5.
Applied Thought Corporation, Belmont, California
Mr. Epstein developed his first Palm OS application.
This was a radical departure from previous work, and required significant
retraining. The application, co-designed by Mr. Epstein and his brother,
was a real-time game called Flytrap. Key components were a discrete event
system to allow many sequences of actions to occur in parallel, and a custom
MIDI music compression algorithm to store over an hour of background music
in only 5K. Another important part of Flytrap was accurate simulation of
physics, including air friction and collisions.
Period: April 1998 to September 1998, March 1999
Role: Palm application designer and developer.
Environment: Macintosh. Metrowerks CodeWarrior for Palm OS DR1
through R3.
Network Intelligence, Palo Alto, California
Mr. Epstein was a senior developer in a medium sized team developing Contour,
a graphical network management system implemented in VisualWorks, with
network probes developed by an independent team in C. Network information
discovered by the probes was sent to domain managers written in VisualWorks.
The domain managers formed a distributed system using CORBA and Oracle
databases for persistence. Only the core network architecture was replicated,
and detailed statistical information such as device response times were
condensed as they reached specified ages. This allowed any user to monitor
any part of the network from any domain manager while keeping database
capacity requirements acceptable and minimizing network traffic. Mr. Epstein
implemented a general purpose framework for producing arbitrary web pages
from VisualWorks. He used this framework to implement automatic periodic
updating of web pages for Contour reports, so that anyone can view recent
network performance charts from their web browser.
Period: July 1996 to June 1997
Role: Employee: Senior Smalltalk developer.
Environment: PC running Windows NT. ParcPlace-Digitalk VisualWorks
2.5. ENVY code management system. Oracle.
Paradigm Systems Corporation, Seattle, Washington
Mr. Epstein was both lead developer and mentor for a small team developing
ONSchedule, a graphical job scheduling system implemented in VisualWorks
with ObjectStore, an object database. To allow any user to monitor and
control progress of any schedule, he designed each user's image to have
multiple interacting processes which coordinate not only with one another,
but also with other images through database transactions. To achieve fault
tolerance, he implemented the scheduler itself as a separate headless
image containing processes for interacting with the user, for communicating
with a C++ daemon process, for timing, and for executing schedules. He
used database change notification to efficiently update the users view
of a running schedule, changing icon colors as the schedule runs. To provide
source code control for the team, Mr. Epstein developed a VisualWorks interface
to CVS, a UNIX file based system which uses optimistic concurrency control.
This allowed the same repository to hold all project information: VisualWorks
code, C++ code, and design and user documentation. In another in house
project, he used VisualWave to add a web interface to an issue
tracking system implemented in VisualWorks and GemStone.
Off-site consulting work was in the capacity of a fire-fighter: Brought
onto a project that is falling far behind schedule, he focused on what
was critical to turn around the project. In this capacity, he added concurrency
control and true object uniqueness to an object repository framework for
Egghead Software. This work was done in VisualWorks with Odapter. In a
similar capacity, he developed a user interface framework for the Seattle
Times newspaper, where the work was done in VisualWorks and Oracle (SQL).
While at Paradigm, he presented design patterns and algorithms to give
the Smalltalk team exposure to both the theoretical and practical sides
of computer science. Database experience covers the entire range from relational
to object databases.
Period: May 1995 to May 1996
Role: Employee: Smalltalk specialist.
Environment: SUN SPARCstation running SunOS and Solaris UNIX, PC running
DOS/Windows. ParcPlace-Digitalk VisualWave, VisualWorks 2.0 &
2.5. CVS code management system. ObjectStore, Oracle, & Odapter.
Seattle Times Corporation, Seattle, Washington
Mr. Epstein worked with a medium sized group to develop an accounting system
for newspaper dealers using VisualWorks and Oracle. The system was to replace
several existing mainframe applications, but the project was canceled due
to lack of funding. Requirements analysis was done using several variations
on Jacobson's use cases. A prototype based on these use cases was developed
and improved based on feedback from the user analysts. Mr. Epstein worked
closely with VisualWorks, extending it in several important areas to support
the desired user interface. The prototype user interface was designed in
the CUA user interface style. He implemented a stack of folders look and
feel for the VisualWorks notebook widget to achieve the desired CUA look
and feel.
Period: September 1994 to November 1994
Role: Contractor.
Environment: PC running DOS/Windows. ParcPlace VisualWorks 2.0.
Oracle.
Bell Northern Research and ObjecTime Limited, Ottawa, Ontario
Mr. Epstein provided expert assistance in graphical user interface design
and implementation as a contractor to Bell Northern Research and then to
ObjecTime Limited. He worked closely with the person responsible for user
interface design within the company. The product is an object oriented
CASE tool for real-time systems implemented in ObjectWorks which uses NT
Signature, a sophisticated proprietary graphical user interface. He added
significant new functionality to this user interface, rewrote and improved
existing functionality, and assisted in porting the system to two subsequent
releases of Smalltalk which were based on a substantially different user
interface model. Mr. Epstein refined the framework to support both programmer
and end user control over window layout, significantly extending functionality
without affecting users of the framework. In order to support size limits
at any level in a visual component hierarchy, a discrete event simulation
was used to compute window layout. This made it easy for the application
developers to ensure that widgets never became too small to work properly
while minimizing the requirements on screen real-estate.
Mr. Epstein also rewrote a language sensitive text editor to allow the
beginner to create syntactically correct code simply by dragging and dropping
language constructs while allowing the experienced user to treat the editor
as a conventional text editor. He used custom fonts to ensure that template
place-holders were treated as atomic single characters. The design was
forged from experience with existing language sensitive editors which beginners
find useful, but which frustrate more experienced users.
All user interface features went through usability testing and refinement
based on customer feedback. Because the NT Signature specification was
produced by experts in user interface design, deviation from the specification
was only done if customer feedback indicated a problem. The result was
a highly polished, profitable product.
Period: May 1992 to August 1994
Role: Contractor.
Environment: SUN SPARCstation running SunOS UNIX. ParcPlace ObjectWorks
for Smalltalk-80 versions 2.5, 4.0, & 4.1.
Carleton University, Ottawa, Ontario
Mr. Epstein worked as a research assistant on a computational geometry
workbench implemented in Smalltalk/V. He designed and implemented an animation
facility for showing execution of algorithms as they create and manipulate
geometric objects, taking advantage of Macintosh operating system features
to support high speed display of complex geometric objects in color without
consuming vast amounts of memory.
Mr. Epstein worked as teaching assistant to Wilf Lalonde in Carleton
University's first ever Smalltalk course. He also worked as a teaching
assistant for courses in Pascal programming, graphics, robotics, artificial
intelligence, and databases.
Period: Part-time 1986-1991
Role: Employee: Research assistant & teaching assistant.
Environment: Apple Macintosh computers. Digitalk Smalltalk/V Mac
1.1 & 1.2.
Bell Northern Research, Ottawa, Ontario
Mr. Epstein worked with a small group to implement the NT Signature user
interface specification in Smalltalk. He was responsible for prototyping
an implementation of NT Signature based on modifying the existing Smalltalk-80
user interface, and then for implementing specific widgets, such as scroll
bars, in the NT Signature user interface framework. Additionally he designed
and implemented an efficient general purpose region clipping algorithm
used to support updating partially obscured windows efficiently. Period:
April to August 1988, April to September 1989
Role: Employee: Smalltalk programmer
Environment: Apple Macintosh, SUN SPARCstation running UNIX and Open
Windows. ParcPlace ObjectWorks for Smalltalk-80 2.3 & 2.5.
Ford Aerospace and Communications Corporation, College Park, Maryland
Mr. Epstein was lead architect and developer of a discrete event simulator
written in Ada. On this project, he learned a great deal about simulation
and queuing theory and developed skills in concurrent system design. He
collaborated with a fellow developer on a space station prototype, also
implemented in Ada. Many aspects of the communication links were modeled,
including framing, delay, compression, and error detection and correction.
Both systems used real-time updating of the display to keep the user informed
while concurrently supporting user input to control the system or change
which aspects to monitor. Ray Buhr's object oriented and concurrent design
methods were used effectively to achieve code reuse and to model concurrency
in these systems.
Period: April 1984 to December 1985, April to September 1986, April
to September 1987
Role: Employee: Ada programmer
Environment: DEC VAX and MicroVAX computers running VMS. DEC Ada,
CMS code management system.
TECHNICAL PROFILE
Programming Languages
C:
Metrowerks CodeWarrior
MPW
ARM Developer Studio.
Smalltalk:
ParcPlace VisualWave
ParcPlace VisualWorks 2.0 & 2.5
ParcPlace ObjectWorks 2.3, 2.5, 4.0, & 4.1
ParcPlace Smalltalk-80 2.1, 2.3, & 2.5
Digitalk Smalltalk V/Mac
Apple Smalltalk-80
Ada, Pascal, BASIC, Lisp/Scheme
6502, 68000, & PDP-11 assembly languages
minimal experience with FORTRAN, COBOL, APL, Java, and ARM assembly languages
Databases
-
ObjectStore
-
Oracle 7
-
Odapter
Computing Environments
-
Intel PCs running Windows NT/2000/XP
-
Macintosh/Power Macintosh running MacOS
-
SUN SPARCstations running SunOS & Solaris UNIX with various window
managers
-
VAX/MicroVAX running VMS
EDUCATION
Degrees
-
M.C.S. in Computer Science, Carleton University, 1992.
-
B.C.S. Honors in Computer Science, Carleton University, 1990.
Awards
-
Senate Medal for outstanding academic achievement, Carleton University,
1992.
Published Papers
-
P. Epstein et. al., A Workbench for Computational Geometry, Algorithmica
11 (1994) pp. 404-428.
-
P. Epstein, J-R Sack., Generating Triangulations at Random, TOMACS (1994).
CITIZENSHIP
Mr. Epstein is a citizen of the United States.
HOBBIES
Digital photography, recumbent trikes, hiking.
CONTACT INFORMATION
Mr. Epstein can be reached by email at Peter.Epstein.2@AppliedThought.com. Please
contact him via email if you need a telephone number or address.