Amit J Patel

I am not looking for a job at this time.

Department of Computer Science
Gates 4B, room 492
Stanford, CA 94305-9045
amitp@cs.stanford.edu

Education

Rice University (1990-1994)

Bachelor 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.

Stanford University (1994-Present)

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.

Summary of Skills

Web

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).

Programming Languages

Primary: C++ (including templates, namespaces, exceptions) (9 yr), Python (3 yr), Scheme (7 yr).

Also some: SML, Pascal, Java, C.

Operating Systems

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).

Libraries

Networking, Borland OWL, C++ STL, X-Windows (Athena Toolkit), SGI OpenGL, SGI Inventor, OS/2 DIVE.

Work Experience

Web

Cricket Media, 1998

Wrote and maintained CGI scripts and data/mail processing scripts.

Languages: Python.  OS: MacOS, Unix.  Skills: HTML, E-mail, CGI.

Teaching

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.

Multi-user Games

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.

User Interfaces

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.

3D Graphics - Summer 1993

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).

Operating Systems and Programming Languages

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.

Simulation and 3D Graphics

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).

Interfacing to Hardware

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.

Other Experience

Web Services

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.

Web Pages

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).

Games Programming

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.

Networking

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.