Disclaimer: Not my dogs and not my house (I wish they were). But the laptop is mine!
A general-purpose programmer, accidental game developer, aspiring writer, and occasional manager, I discovered Apple II programming in high school and later earned computer science degrees from MIT and Johns Hopkins University.
My career has spanned the semiconductor, defense/government, 3D graphics, mobile Internet and video game industries, with roles ranging from individual contributor to lead programmer to project management to startup operations.
July 2000-present Las Vegas, Nevada
Providing consulting, contract development, project management and training services for game studios and publishers, software startups and international corporations.
Contributed to the development of various iOS and Android apps:
Consulting and app prototypes for Next Digital
Self-publishing licensed remake of HyperBowl (see Hyper Entertainment below)
An assortment of small games under the Fugu Games label
Other self-published apps, such as Talk Dim Sum
Worked on video games and graphics applications:
The Tech Deck: Bare Knuckle Grind series of games by Visionscape Interactive
Consulted for Crave Games
The Genesis 3 call center system by Magnasync
Web development collaboration software and biometric identification systems for Univessence Digital Systems
Articles and Interviews
Unity pause menu on the Unity community wiki
Assorted other repos on github.
January 2001 — June 2001 Burbank, California
Lead programmer (taking over for the original lead programmer), continued maintenance and development of the HyperBowl arcade and attraction 3D bowling game.
Optimized rendering, added performance analysis tools, an experimental XML format, updated the data importer to work with newer content creation tools, modified the DirectX renderer to work with newer graphics cards, localized the game for French installations, tweaked the audio code, and added support for arcade machines and new gameplay features.
December 1999-July 2000 San Francisco, California
Technical Lead for the web proxy portion of a WAP gateway supporting Neomar’s wireless browser on Blackberry and Palm devices. Implemented HTTP, transcoding, and SSL support all in Java. Design to release in five months, between the Series A and Series B funding rounds.
December 1998 — December 1999 Redwood City, California
Principal Senior Software Engineer, optimized Interval Logic’s fab automation planning system (Leverage for Planning) using Tcl Pro.
Then led a five-member team responsible for various scheduling system (Leverage for Scheduling) clients, implemented with Visual Basic, Java Swing and XML.
October 1998 — November 1998 Los Angeles, California
August 1997 — September 1998 Los Angeles, California
Vice President of Technology at a three-person startup developing 3D computer graphics tools using Java and OpenGL on Silicon Graphics workstations and Windows PCs.
December 1995 — August 1997 Los Angeles, California
Manager of Core Software, ported the 3D content creation software NWorld from IrisGL to OpenGL on Silicon Graphics workstations, then led a five-member team in porting NWorld onto Windows NT, launching after a year of intensive development with an alpha version of Franz Allegro Common Lisp and various graphics hardware such as Intergraph workstations and nVidia cards.
Responsible for “core” libraries of the system, including OpenGL, audio, licensing, user interface, video.
January 1994 — November 1995 Cambridge, Massachusetts
Another security clearance job (but it’s cool, it’s BBN). Principal coder on the ARGUS data management system using Common Lisp and the Common Lisp Interface Manager and helped maintain the PRISM acoustical analysis software. Tried out this new thing called HTML and the World Wide Web.
February 1993 — January 1994 Columbia, Maryland
Implemented and integrated the networking code for Distributed Integrated Simulation (basically, networked gaming) at the Johns Hopkins Applied Physics Laboratory, connecting rule-based and manually operated submarine simulations to a networked wargame.
Six months for the the MSTOW wide-area networked simulation exercise, then updated with the VR-Link DIS library in two months for the higher-profile Warbreaker exercise. Was informed a few years later they were still using that code without modification!
Received several letters of commendation from SAIC and APL management. Required crunch time and a security clearance.
September 1990-May 1992 Baltimore, Maryland
Proposal preparation software for the Hubble Space Telescope, used by astronomers to submit requests for HST usage.
Didn’t get very far with the big spec so created an Emacs mode for editing proposals, popular enough with one person in the proposal support group that he requested continued support of the product after I left.
Also prototyped a build system using the Common Lisp Object System.
September 1989-September 1990 Cambridge, Massachusetts
Developed simulators and sample applications for content-addressable memory (CAM) architectures, the Database Accelerator and Content Addressable Parallel Processor, at the Microsystems Technology Laboratory, running on Macintoshes and Unix workstations.
June 1988 — August 1989 Dallas, Texas
Worked on DROID, a VLSI CAD synthesis tool running on TI Explorer Lisp Machines. Implemented technology libraries and optimized the automated routing system.
M.S. Computer Science 1993 Baltimore, Maryland
Teaching assistant for Computer Literacy 101.
S.B. Computer Science and Engineering 1988 Cambridge, Massachusetts
Thesis: Exploiting Parallelisism in Game-Playing Programs. Implemented a Multilisp reversi program on a 33-processor Multilisp machine.
Concentration in Political Philosophy.
Research assistant in the MIT AI Lab, developing machine vision and natural language programs on Symbolics Lisp machines.
Sales rep at the MIT Microcomputer Center. Had a nice phone call from Marvin Minsky asking about buying a Mac.
West Senior High School
1984 Iowa City, Iowa