peoplePeople at Savannah: Bill White Resume & Skills

Site Wide
 
 

Follows Resume & Skills of Bill White <gleblanc>.

Resume

                                William A. White
                                 64 Griggs Rd.
                                 Brookline, MA 02146
                                 (617) 566-7461 (H)
                                 <bill.white@griggsinst.com>
 
Qualifications
       
       Fifteen years Computer Science experience, twelve industrial and three 
       academic.  Main areas of specialization are Programming Language Design,
       Compiler Design, Operating Systems, DSP and Distributed and Concurrent
       Computing.
       
       
Technical Interests
Software Design Methodology, Design Patterns, Object Oriented Design, 
Operating Systems, Distributed Algorithms and Computing, Applications
of Formal Systems and Formal Methods to Software Design, Software 
Specification Languages, especially Z notation, DSP.
       
  Education
Ph.D. Computer Science, Indiana University, Dec. 1990.
B.A. Mathematics, Indiana University, May, 1977.
Sun Soft training on Solaris Internals, 1996.
IEEE Workshop on Advanced Digital Signal Processing, 1996.
IEEE Workshop on Wavelets and Filter Banks, 1997.
 
Skills
Highly skilled in the programming languages C, C++, Pascal, Lisp/Scheme,
Fortran77, Ada95, GNU Emacs Lisp, Allegro Common Lisp.  Some familiarity
with many other programming languages, including Python, Perl, Java,
Eiffel, Intel 80x86 and Motorola 68xxx assembly language, ML, and
Haskell.
       
Recent industrial experience with BSD and SVR4 Unix kernels, Sun NFS, RPC,
and XDR, and the X Window System.  Recent and ongoing experience with
Red Hat and Debian Linux distributions.  Also, recent industrial
experience with Microsoft Windows, and with the Microsoft Windows API.
Recent industrial experience with DirectX and OpenGL driver internals.
       
Major Implementation Accomplishments
o      Implement OpenGL extensions for 3Dfx's Mesa driver for Linux.
o      Designed and implemented the low-level rendering interface for ATI's 
       OpenGL and DirectX drivers.
o      Discovered many surprising phenomena when running video games on ATI
       graphics hardware, and eliminated the surprising elements.
o      Designed and implemented a library of DSP functions for use in 
       Teradyne's DSP-based mixed-signal tester.
o      Maintained portions of Teradyne's distributed debugging environment
o      Project leader for a DSP System Design Verification project.
o      Sole designer and implementor of a messaging system under Microsoft
       Windows 3.1 in C++. This system is responsible for connection
       negotiation, marshalling and unmarshalling of parameters,
       message delivery and error handling.  It uses a Pegasystems-proprietary
       transport level interface for communication.
o      Designed and implemented an interface between Pegasystem's proprietary
       scripting language and their new generation database access client.
       This interface uses the message primitives of the previous item to
       control message passing, synchronization and error handling.
o      Designed and implemented an interface between the Pegasystems' scripting
       interpreter and 3270 and asynchronous terminal emulators.  Commands are
       either HLLAPI commands, or else DDE commands.  The DDE command language
       is specified at run time by a table maintained in a text file, so
       new terminal emulators controlled by DDE can be added by adding
       new definitions in the table.
o      Sole designer and implementor of the Ada language tools for an
       experimental configuration management tool.  This project required
       maintaining Ada program library data and debugging and controlling
       asynchronous Unix processes running parallel Ada compilations.
o      Sole implementor of the lexical analyzer and of the memory allocation
       primitives for Intermetrics' current generation Ada compiler.
o      Sole designer and developer of a small prototype kernel which managed
       several multiprogrammed processes, and managed interrupt-driven I/O.
o      Wrote enhancements to Megatest's Unix kernel configuration tool, which
       allowed the configuration program to create makefiles which reflected
       the state of the RCS source configuration management system.
o      Wrote a Unix device driver for a device which provided emulation for the
       PDP-11 Qbus to peripheral devices, and Unibus emulation to the kernel.
o      Participated in a port of Sun NFS to the Megatest Multiprocessor Unix kernel.
o      Designed in implemented a prototype network file system (not NFS).  This
       was implemented entirely in user space, by replacing system calls with
       a library of remote-aware functions.  TCP/IP connections to user space
       servers provided remote file operations.  (Yes, performance was terrible.)
o      Coded software to control and exercise the programmable clock board of
       the Megatest VLSI tester in conjunction with the board's designer.
       Provided bit-level access to the clock board, which was mapped into
       user space.
       
o      Sole designer and implementor of an interactive Pascal compiler and
       interprreter.  Designed message passing scheme  connect the Gnu
       Emacs editor as a front end with the Pascal compiler and the
       runtime system, including the Pascal interpreter.  Ported the
       Berkeley Pascal compiler to the Megatest 68000 based system.  Completely
       recoded the Pcode interpreter and the Pascal runtime system.
       
  Employment History
Jan 2000-Present
3Dfx Interactive, Inc.
San Jose, CA
At 3Dfx I have worked on implementing extensions in the Windows OpenGL
driver, and the Linux Mesa3D driver.
 
Feb 1998-Dec 1999 Senior Software Engineer
ATI Research, Inc.
Marlborough, MA
At ATI I participated in a re-target of the graphics API OpenGL to
ATI's Rage128 and Radeon lines of graphics hardware.  In this effort I was
responsible for designing and implementing the very lowest level rendering
interface.  I have also worked on the driver for Microsoft's DirectDraw
and Direct3D graphics API with ATI's previous line of graphics hardware,
the RagePro, and their next, unreleased line of graphics hardware.
 
Oct, 1995-Nov, 1997                       
Senior Design Engineer
Teradyne, Inc.
Boston, MA
At Teradyne I have specified and implemented a library of simple DSP functions
for use in a mixed-signal tester environment, from the initial project proposal
to completion of the library's first release.  I was also responsible for the
resolution of problems relating to the interface between Teradyne's software
and Solaris 1 and 2.  These include interrupt latency, and included work on
simple Unix device drivers.  I was the technical project leader of a
Design Verification, which involved creating specifications (post facto,
unfortunately), specifying test cases, writing documentation, and providing
technical leadership and guidance to a team of 4-5 people.
       
May, 1994 Sept 1995
Senior Software Engineer
Pegasystems, Inc.
Cambridge, MA
At Pegasystems I was involved with interprocess communication technology
in the Microsoft Windows 3.11 environment.  I implemented a message
passing system, including connection negotiation, parameter marshalling
and unmarshalling, message delivery, and a mechanism for delivering
responses to messages.  I implemented an abstract table driven interface
to allow the interpreter of the Pegasystems' proprietary scripting
language control 3270 and asynchronous terminal emulators.  The
interpreter sends abstract scripting commands to an interface task,
which converts them to either Microsoft DDE or IBM HLLAPI commands.  
DDE Service and Topic names, and DDE commands are maintained in a text
file, so new terminal emulators can be configured without changes to
the compiled code.  3270 emulators which use HLLAPI require the
implementation of a single, trivial C++ class definition whose
member functions implement the HLLAPI operations.  I have also
implemented C++ class definitions to provide an abstract interface
to fundamental Windows system datatypes, such as tasks and modules,
DDE, and an abstract C++ interface to HLLAPI.
       
Oct, 1990 Mar, 1994
Principal Engineer
Intermetrics, Inc.
Cambridge, MA
At Intermetrics I was on the team writing Intermetrics current generation
Ada compiler technology.  I implemented a fast scanner which could look
ahead, and move right context forward.  I also implemented the memory
allocation primitives.  Before that I was part of the Ada 95 Language Design
team.  I applied my mathematical skills and language design skills to
sharpen the draft mapping proposals.  I wrote formal specifications of
some of the real-time language features using the specification language Z.  (I really did write the book.)
       
Sept, 1987 Oct, 1990
Instructor
Department of Mathematics and Computer Science
University of Massachusetts At Boston
Boston, MA
At UMass I taught the following graduate and undergraduate courses:
o    Operating Systems: Concentrated on message passing operating systems
     in particular, Mach.
o    Compilers: First semester of a graduate compilers course, covering only
     the front end lexical analysis, parsing, static analysis (type checking)
     and naive code generation.
o    Introductory Computer Architecture: Introduction to C and Motorola
     68000 assembly language.
o    Probabilistic Analysis of Algorithms: Combinatorial techniques used to
     do Knuth-style analysis of algorithms.
o    Undergraduate Numerical Analysis: Simple properties of floating point
     numbers, representation and arithmetic.  Simple numerical algorithms:
     Quadrature, Polynomial and Spline approximations, Gaussian elimination.
     
Sept, 1982-July, 1986
Software Engineer
Megatest Corporation
San Jose, CA
o    Assisted in porting SUN Microsystems' Network File System to a
     multiprocessor Unix kernel.
o    Ported the Berkeley Pascal Compiler to Megatest's 4.2bsd Unix system.
     This system allowed a mixture of compiled and interpreted code.
o    Adapted the Berkeley Pascal Interpreter to an interactive environment.
     This adaptation allowed users to replace Pascal procedures and to
     execute fragments of interactive Pascal code at runtime.
 
Sept, 1977 June, 1982
Research Assistant
Dr. Mitchell Wand
Indiana University
Bloomington, IN
I worked on problems relating category theory to data type specifications.
In particular, I worked on finding methods for determining relative
correctness of datatype implementations.
       
                                Publications
o   White, William A., Generator Induction in Object Oriented Programming
    Languages, Ph.D. Dissertation, Indiana University, 1990.
o   Duff, Robert A., Pazy, Offer, White, William A., Lightweight Task
    Synchronization: The Protected Record Mechanism in Ada 9X, Tri-Ada
    Conference, 1991, Orlando, FL, 1991.
o   White, William A., A Formal Model of Protected Records for Ada 9X,
    Intermetrics' Internal Document.
o   Baclawski, Kenneth, Simovici, Dan A., White, William A., A Categorical
    Approach to Database Semantics, Mathematical Foundations of Computer
    Science, 1994.
                                          
  References
References will be provided upon request.

Skills

Skill Level Experience
Antlr Base Knowledge 6 Mo - 2 yr
Autoconf Base Knowledge < 6 Months
Automake Base Knowledge < 6 Months
Ada Good Knowledge 2 yr - 5 yr
OpenGL Good Knowledge 2 yr - 5 yr
GNU/Linux Good Knowledge 5 yr - 10 yr
GNU Emacs lisp Master Apprentice > 10 years
Bison Master Apprentice 5 yr - 10 yr
Flex Master Apprentice 2 yr - 5 yr
C++ Expert > 10 years
C Expert > 10 years

Back to the top

Powered by Savane 3.13-caa5.
Corresponding source code