Objective
To serve as a technical lead or key contributor on large projects with
significant technical challenges, performance constraints, and
real-time requirements. I particularly enjoy doing things which have
never been done before.
Background
Strong practical computer science background, including use of
sophisticated algorithms and techniques for achieving efficient,
production-quality code. Specific experience with rapid cross-language
code translation, mobile development, cross-platform development and
porting, compiler and interpreter technology, real-time text indexing,
search techniques, database implementation, concurrency,
recoverability, and game design and implementation with emphasis on
responsiveness.
I am experienced in working on large teams of heterogeneous
professionals, and a capable technical leader.
Technical Summary
I am generally fluent and flexible in von Neumannn style Turing
Machines.
Programming Languages (highly experienced): C/C++, Java,
Python, Scheme.
Development Environments (preferred): Linux and POSIX
environments generally, GNU toolchain centered around Make; Emacs,
Bash, Cygwin, Subversion.
Development Environments (highly experienced): BREW,
J2ME, CVS.
Additional professional experience (not necessarily
recent): Perl, Common Lisp, Eiffel, Perl, Pascal, SQL, Logo,
and AppleSoft BASIC, Windows, MFC, MS Visual Studio, DirectX
(including DirectDraw, Direct3D, and DirectPlay); MacOS Toolkit,
Symantec C/C++, and Metrowerks C/C++; Apple II+ and TI/99 systems.
Professional Summary
Software Architect – Hands-On Mobile, Inc (formerly Mforma Group, Inc.)
August 2004 – December 2008
- Worked on "Guitar Hero: World Tour Mobile", which received an IGN
Editors' Choice Award in December 2008. This was a departure from my
BREW specialization at Hands-On.
- Architect for fundamental gameplay data formats; designed the game
data production pipeline.
- Architect for cross platform inter-client multiplayer protocol.
- Lead engineer for J2ME client.
- Major contributor to the audio data pipeline.
- Originator and benevolent dictator of Hands-On's BREW application
framework. Technical lead for all BREW engineers in US. Developed
tools for BREW engineers worldwide, including training engineers from
Hands-On UK offices and transferring productivity tools,
libraries, and best practices to Hands-On Korea and China offices.
- Lead successful company-wide migration from fragmented CVS
solutions to a unified Subversion source control repository.
- Personally ported 8 applications from J2ME to BREW in 2 years and
maintained running back catalog of 8 apps on constantly emerging new
devices. Oversaw and assisted 2 junior and 1 intermediate engineers
in the same. Our back catalog porting goal, usually met by the entire
team, was 24 hour turn around time for new device support of 3-4
applications even in the presence of novel device quirks requiring
research and recompile.
- Developed extensive set of test suite applications, particularly
with an eye towards rapid discovery of the manifold device quirks
encountered in the mobile domain, and wholesale incorporation of
work-arounds into the back catalog.
- Streamlined and extended underlying porting library developed at
FingerTwitch.
Contract Programmer and Senior Software Engineer – FingerTwitch, Inc.
May 2003 – August 2004
- Personally ported 12 applications from J2ME to BREW in 14 months.
- Primary architect and implementor of underlying porting and device
abstraction framework. Features included partial C++ mimicry of major
Java language features and libraries, memory management features,
extensive compile-time and run-time asset manipulation pipelines, and
an asset cache system that greatly softened the degredation of
performance on low-capability devices.
- Due to the device constraints, minimizing codesize and RAM usage
while maximizing performance was a paramount concern, while due to
market characteristics maximizing productivity and throughput was the
constant goal of the porting framework.
- FingerTwitch reached a successful purchase agreement with Hands-On
(then known as Mforma Group, Inc.) in August 2004, in which I was
designated key personnel and the porting framework I developed was
designated the primary intangible asset.
Personal sabbatical
May 2001 – May 2003
Following demise of Xigo with the dot-boom, I took a two-year
sabbatical to travel and study.
Senior Software Engineer – Xigo, Inc.
April 2000 – May 2001
- On Linux & Solaris, developed the Java back-end for an
extensive text indexing system implementing real-time functionality
for agent-based and traditional index operations, including optimized
query evaluation and source document archiving.
- Implemented a recoverable and concurrent block file format,
B+Trees, inverted indices, and other file and data structures
supporting higher-level database operations. This led to
two-and-a-half patent applications: one to minimize use of locking
mechanisms in distributed system, two to speed up query evaluation.
- Restructured a query engine to support concurrent queries rapidly
and efficiently. Maintained agent engine that supported millions of
simultaneous pre-specified queries.
- Supported text indexing designed to handle hundreds of MB/day
real-time news feeds to trigger from a pool of millions of agents with
twenty-second latency and exposure for interactive user querying
within thirty seconds.
- Co-structured and installed a staging system for functionality and
compatibility testing. Included correctness, system latency, and load
testing. Liased with quality assurance personnel to design test suite
and intended server functionality. Similarly liased with operations
department as each server version went into production.
Network Programmer – Ronin Entertainment, Inc.
March 1999 – May 2000
- Implemented performance-critical, real-time multiplayer
functionality in C++ for 3D games by extending a proprietary language
with a custom peer-to-peer protocol. This code went into Lucas Arts'
"Star Wars: Force Commander" and Ripcord's "Blademaster". Extensive
co-design of "Force Commander" game multiplayer aspects; primary
author of game multiplayer functionality.
- Extensive use of C++ standard libraries, particularly container
templates, toward the goal of rapid development.
- Implemented high-level networking API for pre-existing game
engine. Implemented custom real-time packet compression. Liased with
dedicated multiplayer quality assurance team.
- Coded to DirectX 7.0, particularly DirectPlay.
Software Engineer – Asylum Entertainment / SoundSource Interactive
April 1997 – January 1999
- Worked on most aspects of networked multiplayer strategy games for
Windows 95/98 on teams of two to four programmers.
- Primary author for UI and game state evaluation engines, co-author
of data file formats and asset cache management, and supporting author
for animation and networking systems.
- Primary coding in C++, with some tight ASM for custom draw
routines and effects, and Java and Perl for offline production tools.
- Coded to MFC and DirectX 5.0 and 6.0, particularly DirectDraw,
DirectInput, DirectPlay, and DirectSound.
Software Engineer – Quark, Inc.
February 1996 – September 1996
- Designed and implemented new features for the Quark Publishing
System in C.
- Emphasized portability across multiple OS, GUI, and network
standards.
- Coded cross-platform for MacOS 7.5.3 and Windows 95.
Education
Bachelor of Arts in Computer Science, U.C. Berkeley, May 1996
Teaching Assistant, CS164: Programming Languages and Compilers
Extracurricular
Drums, garden, geodesic domes, vacuum balloons, Go, zombie movies,
Horselover Fats.
Links