Highlights
- 22 years of programming experience, 1 year management experience
- 18 years with C, 6 with C++, and 3 with Java and web technologies
- Designed and implemented dozens of user interfaces
- Extensive 3D graphics experience
- Broad range of interests and skills within computer science
Programming Skills
Java (Spring, JMS, JDBC, JSP, Swing), SQL, Python, C++, C, ASP/VBScript, UNIX, OpenGL,
Assembler (x86, 680x0, MIPS), embedded systems, distributed
systems, robust and scalable enterprise systems, highly multi-threaded design
Personal Projects
Work Experience
Rearden Labs,
Palo Alto, California
Member of Technical Staff, June 2007 to present
- Work done here cannot yet be made public
Kaleidescape, Inc.,
Mountain View, California
Software Engineering Manager, User Interfaces, July 2002 to June 2007
- Implemented entire user interface for consumer electronics device
- Product is several Ethernet-linked devices running
hundreds of threads each
- Product won "Best Video Product" award at CEDIA Expo 2003
- Managed team of seven others to develop various user interfaces
- Inventor on nine user interface patent applications
Data Systems & Solutions, Bristol, United Kingdom
Senior Web Developer, February 2001 to December 2001
- Developed web sites for Rolls-Royce to provide services
to their gas-turbine clients
- Used both ASP and JSP technology
- Used RAD to develop web prototypes to
capture clients' requirements
Pacific Data Images (now PDI/Dreamworks), Palo Alto, California
Programmer, July 1995 to January 2001
- Wrote 3D paint program, lighting tool, and many other tools
(e.g., metaballs renderer, CSG program, 3D curve editor)
- Wrote 3D manipulation libraries, UI libraries
- Worked on 2D tools (porting to 16 bits, gamma issues)
- Developed musculature and facial animation system
- Maintained internal scripting language (Yacc/Lex)
- Film Credits: The Arrival, Antz, Shrek
PixelFlow Project at the University of North Carolina
Research Assistant, Fall 1993 to May 1995
- Worked on Rendering Control – the software that synchronizes
the many different processors and flows of data
- Wrote program to simulate the dynamics of a
bowling strike for
SIGGRAPH '94 animation
Silicon Graphics, Inc., Mountain View, California
Programmer, Summer 1994
- Worked on Nintendo 64 (Project Reality)
- Wrote libraries, translators, debuggers, the first game, and
microcode for the hardware
Microsoft Corporation, Redmond, Washington
Software Design Engineer, Summer 1993
- Finished Cinemania '94, the multimedia CD-ROM interactive movie
guide, and its installation program
- Wrote several relational database programs to handle the
film and hypertext information
- Wrote much of Cinemania '95, which involved a port to a new
hypertext engine and additional interface functionality
Visual Synthesis, Inc., Fairfax, Virginia
Programmer, Spring 1990-Spring 1993
- Wrote device drivers for custom VME hardware for the SGI
- Designed and implemented an inter-process communication
subsystem and software library
- Wrote graphics and audio software for various sound-generating
hardware
Advanced Computer Architecture Laboratory
George Mason University, Fairfax, Virginia
Head of Laboratory, 1990-1991
- Wrote a cross-assembler/compiler and development environment
for custom pyramid-structured massively parallel computer (the
Pyramid)
- Wrote object- and image-recognition programs for the Pyramid
Education
M.S. Computer Science, May 1995
University of North Carolina
Chapel Hill, North Carolina
B.S. Computer Science with Math minor, May 1993, Magna Cum Laude
Virginia Polytechnic Institute and State University (Virginia Tech)
Blacksburg, Virginia
GPA: 3.66/4.0
In-Major GPA: 3.7/4.0
Computer Science
George Mason University
Fairfax, Virginia (Fall 1989-Spring 1991)
GPA: 3.8/4.0
Activities
- Programming Team, Virginia Tech, 1991-1992; Captain of team,
1992-1993 (placed 4th internationally)
- Technician's license in Amateur Radio, 1984-Present
- Ultimate frisbee, scuba diving, jazz piano, Lindy Hop (dancing)
- French (fluent)
Patents
- 7,231,607: Mosaic-like user interface for video selection and display
- 7,246,322: Grid-like guided user interface for video selection and display