Jesse H. Willett
jhwjhw@gmail.com
Skills Summary
I a capable technical leader and experienced contributor on large,
cross-functional teams of professionals.
I have provided technical direction to large teams, leading to
successful product launches and other business outcomes.
-
Team construction and guidance, and culture-pivoting.
-
Fluent in both fundamental and domain-specific data structures and algorithms
-
Development at scale, clustered applications, cloud computing
-
Cross-platform development and porting
-
Mobile and constrained development
-
Real-time text indexing and search techniques
-
Database implementation including transactional semantics,
concurrency, and stable storage
-
Game design and implementation with emphasis on time-to-market
-
18 years' experience shipping product
Professional Summary
Distinguished Engineer – Zynga Game Network, Inc.
July 2010 – October 2010 : Contract
October 2010 – Present : Full Time
Zynga is the preeminent developer of social games, best known for
their hit offerings on Facebook. At Zynga I served in a variety of
roles on several teams.
- On Café World I made individual contributions (1 year).
- Added features, fixes, and optimizations on the client (AS3/JS/HTML) and on the server (LAMP, PHP+Memcache+MySQL).
- Promoted culture shift toward more robust deployment infrastructure and test-driven development.
- Served as backup CTO.
- On CityVille I served as studio architect (0.5 years).
- Advised and participated in longer-range product planning.
- Promoted culture shift toward incrasing automation and test-driven development, with an eye on derisking and accelerating feature delivery.
- Led a significant back-end storage refactor in support of a long feature arc.
- On ChefVille I served as Game CTO (Technical Director) (1.5 years).
- Advised on staffing needs.
- Participated in strategic recruiting.
- Set long-term technical arc and priorities.
- Mentored widely, and trained the team to train itself.
- ChefVille launched on time and scaled smoothly to 7 million DAU.
- The ChefVille team transitioned smoothly from development to live operations, settling into regular feature cadence within a week of launch.
- In the Casino Division I served as Division CTO (0.5 years).
- Oversaw and advised 4 Game CTOs.
- Identified common challenges, opportunities for inter-studio cooperation, leverage.
- Participated in strategic recruiting.
- Provided strategic technical advising to members of C-Staff.
Software Engineer – DigitalGlobe, Inc.
April 2009 – July 2010
DigitalGlobe is a leading vendor of satellite and aerial earth
imagery in both the private and public sectors.
- Worked on DG's High Performance Computing platform.
- Elevated the deployment ergonomics of the existing system.
- Identified and resolved performance hotspots, especially
cluster-wide I/O gating issues.
- Identified and resolved stability hotspots, both per-node and
cluster-wide.
- Provided technical leadership which resulted in:
- Successful outcome of a business emergency.
- Octupling the maximum stable cluster size.
- Quadrupling the throughput with fixed cluster size.
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
Technical Summary
I am generally fluent and flexible in von Neumann style Turing
Machines, and idiomatic in the Unix design philosophy.
Programming Languages (highly experienced): C/C++, Java,
PHP, ActionScript3, Python, Ruby, Scheme.
Development Environments (preferred): Linux and POSIX
environments generally, GNU toolchain centered around Make; Emacs,
Bash, Subversion.
Development Environments (highly experienced): LAMP, BREW,
J2ME
Additional professional experience: Tomcat, Lucene,
Compass, Terracotta, Perl, Common Lisp, Eiffel, Perl, Pascal, SQL,
Logo, and AppleSoft BASIC, Windows (preferably via Cygwin), 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.
Links