I am not looking for a job at this time.
Department of Computer ScienceBachelor of Arts (Computer Science), June 1994 (Summa cum laude-- 4.0 GPA)
Concentrated on programming languages and compilers, but also worked with operating systems, distributed systems, and networking.
Master's Degree (Computer Science), June 1998
Pursuing Ph.D. (Computer Science), expected June 2000
Work on language design and security tools. Advisor: John Mitchell. Thesis will include design and analysis of an object-oriented extension to ML. Goals include reusing ML's features to keep the object system simple; preserving the modularity goals associated with object systems; and proposing general language constructs well-suited for implementing design patterns.
HTML (5 yr), Cascading Style Sheets (1 yr), web design (4 yr), web usability (4 yr), web page generation (3 yr), CGI (limited), HTTP (2 yr).
Primary: C++ (including templates, namespaces, exceptions) (9 yr), Python (3 yr), Scheme (7 yr).
Also some: SML, Pascal, Java, C.
Primary: Unix (SunOS, Solaris, SGI-IRIX, HP-UX, Linux - Slackware/Debian/RedHat), OS/2 (2.0 through 4.0).
Also some: Windows (2.0, 3.1, 95, NT), MacOS (System 3 through OS 8.5), DOS (3 through 6).
Networking, Borland OWL, C++ STL, X-Windows (Athena Toolkit), SGI OpenGL, SGI Inventor, OS/2 DIVE.
Cricket Media, 1998
Wrote and maintained CGI scripts and data/mail processing scripts.
Languages: Python. OS: MacOS, Unix. Skills: HTML, E-mail, CGI.
Stanford University - Each Autumn, 1995 to 1998
Teaching assistant for Stanford CS242, Introduction to Programming Languages, appropriate for masters level students. Maintained the web page, designed new homework problems, held office hours, graded assignments, and taught a weekly review session. Maintained a homework problem database for storing homework questions and problem ideas. Also wrote scripts to produce handouts, web pages, and grade statistics. Experimented with using Java applets to demonstrate concepts taught in the course.
The Solar Realm - 1990 to 1994
Wrote and supported BBS door games (including Solar Realms Elite) for several years.
Languages: C++, Turbo Pascal. OS: DOS, OS/2. Skills: serial communications, text mode user interfaces, networking, object persistence.
Bluware, Inc. - Summer 1994
Worked on a city mapping program designed for real estate agents. Program kept track of houses and demographics, and supported various forms of query for potential home buyers. Mostly worked on user interface and performance enhancements.
Languages: C++. OS: Windows 3.1, Windows 95. Skills: user interfaces, profiling & optimization.
Shell Oil's Bellaire Research Center - Summer 1993
Implemented a 3-D graphical viewer for seismic data which extracted and displayed a "slice" out of a cube of data, then provided an interface to manipulate the viewpoint (zoom, rotation, and panning).
Languages: C++. OS: Unix (SGI). Skills: 3D graphics (OpenGL, Inventor).
Computer Science department at Rice University - Summer 1992
Worked with Bruce Duba and Matthias Felleisen on various Scheme projects. Designed an implementation of user-defined data types for Scheme. Investigated the user of continuations for operating system kernel functions. Prototyped a programming environment designed for teaching introductory computer programming. Also designed part of a graphics library for Scheme.
Languages: Scheme. OS: Unix. Skills: operating system design/internals, user interfaces, graphics, language implementation, garbage collection.
Physical Chemistry department at Rice University - Summer 1991
Contributed to research on energy transfer among atoms within a molecule. Wrote both an X Windows and SGI (GL) version of a molecular animation program to view results of simulations.
Languages: C, Fortran. OS: Unix (SGI). Skills: simulation (physics), 3D graphics (X Windows, GL).
Ranger Scientific - 1987 to 1989
Implemented a program to gather data from a mass spectrometer. Also implemented programs to analyze data to find spectral lines.
Languages: C, Pascal. OS: DOS. Skills: hardware interfacing, simple user interfaces.
1997 to Present
Wrote and maintained a web proxy designed to examine and modify Java bytecode before it reached the browser. Designed the core to use an asynchronous, actor-based model instead of the conventional multithreaded, state-based model.
Languages: Python. OS: Unix. Skills: HTTP, HTML, Java bytecode.
1994 to Present
Maintain a popular web site for game programmers. Most pages are generated from templates or by programs.
Languages: Python. OS: Unix, OS/2. Skills: HTML, CSS1 (style sheets); web page generation, web page design (navigation, usability).
1995 to Present
Write games to try out ideas learned in school, since experience with a long-term project is essential yet is difficult to get in classes that last a mere 12 weeks. Currently working on a multithreaded game to learn about threads, user interfaces, modularity, and simulation.
Rice University, course project - Autumn 1993
Designed a distributed object system for ordinary C++ and Unix. Compared with the many systems that relied on adding new features to the language, compiler, or operating system. Implemented a sample graphical "talk" application, including live objects-- updates to an object on one computer were seen on the other computer, implemented with the user program having transparent access to remote objects.
Languages: C++. OS: Unix. Skills: networking, distributed object systems.