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

    Computing Environments

    EDUCATION

    Degrees

    Awards

    Published Papers

    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@AppliedThought.com. Please contact him via email if you need a telephone number or address.