Brian Holtz
Summary
Senior engineer with two decades' experience in building
massively-scaled web services (Kabam gaming, Yahoo Personals) using
various languages (Java, Scala, Ruby, PHP), frameworks (Play,
Apache/tomcat, Rails), data stores (MongoDB, MySQL, Redis), and
platforms (AWS, datacenter). Seven software patents, three of them
in network security. Fan of test-driven development, type safety,
maintainability. Not a fan of long commutes, so my job search starts
in mid-peninsula.
Skills
Constructive and positive team player with superb analytic and
communications skills, specializing in architecting and implementing
interfaces for network-based services using object-oriented
languages and open networking technologies.
- Platforms and Languages
- Unix (Linux/MacOS/FreeBSD/Solaris), plenty of Android, a
little iOS
- fluent: Java, Ruby, PHP, C/C++, JavaScript, perl, ksh/sh
- starting to learn: Scala, AWS, Chef
- trying to forget: elisp, ML, Prolog, Modula-2, Pascal,
Fortran, BASIC, assembly
- Technologies, Tools and Methodologies
- REST, HTTP, AJAX, OAuth
- Apache/Tomcat, Play Framework, Hibernate, Rails, Node.js,
RESTEasy, Spring, RabbitMQ, Swagger
- MySQL (MyISAM, InnoDB), NoSQL (MongoDB, Redis, memcache)
- github, Jenkins, JIRA, Loggly, NewRelic
- test-driven development, continuous integration, Jenkins,
Cucumber, JUnit
- JSON, HTML/CSS, XML
- git, ant, maven, subversion, gmake/make, Perforce, CVS/RCS,
CodeManager/SCCS
- Yahoo proprietary: transaction replication, proxied shared
memory, scalable entity databases, packaging
Experience
2011 - 2018: Kabam
- Helped migrate payments/accounts/forums systems (MySQL, Java,
PHP) from owned hardware to AWS via RightScale. 5 minutes
downtime during DNS cutover.
- Led design/implementation of new Kabam Account system in
Play/Scala/Mongo; migrated 40M accounts from Java/MySQL with no
downtime. (1. wrap new REST API around old system. 2. migrate
accounts and invert the relationship so the old system became a
client of new.)
- Led design/implementation of Unity/Android/iOS client SDKs for
accounts, player-tracking, and mobile loyalty services
- Designed REST APIs and patent-pending security model for
accounts, player-tracking, and mobile loyalty services (>50M
requests/day for >300M game-players)
- Solved api.kabam.com deadlocking problem (memcache use caused
DBs to be opened in different orders)
- Led design/implementation of alliance forums service (PHP
frontend -> RESTEasy Java backend)
- Designed/implemented single-signon between Kabam's gaming
portal (Ruby on Rails) and forums (vBulletin on PHP), migrating
millions of VB accounts to Kabam Accounts with no downtime (by
re-migrating hashes of passwords changed during migration).
2010 - 2011: Yahoo! Open Social
- Modified Activator's Java Hadoop code to generate JSON as
intermediate format in scraping user email for suggested social
contacts
- Modified Yahoo! Application Platform (YAP) web service (PHP
backend, JavaScript client) to support event syndication across
partner social networks
- Implemented C++ event consumer to do memcache invalidation for
YAP Most-Recently-Used Apps system
- Updated YAP search web service to do parallel fallback
searches across locales
- Created YQL table for YAP app search web service after
modifying web service interface to be YQL-friendly
- Maintained Y! developer forum (Invision PowerBoard, PHP) --
security fixes, integration with Yahoo IDs, etc.
2002 - 2009: Yahoo! Personals
- Responsible for engineering efforts to detect, monitor, and
automatically defeat abuse of our service (e.g. spam, fraudulent
profiles).
- Led rearchitecting of Y! Personals mailbox system to replace
NFS-based storage with MySQL. 800K unique users/day viewed
3M pages/day and sent 300K msgs/day, involving 5M mailboxes
containing 500GB of user data.
- Designed/implemented live data integration with our email
marketing partners (first Digital Impact, then CheetahMail).
Designed/implemented site and data integration with our
affiliate-management partner (Commission Junction).
- Designed/implemented Y! Messenger Personals search plug-in
(in JavaScript) and the web services (in PHP) that it used.
1999 - 2001 Sun: Webtop Applications
- Led StarSync project (4 engineers), which built a
SyncML-compliant HTTP service (using Apache/Tomcat/JAXP) for
XML-based synchronization of folders and documents between the
SunONE Webtop and Java/PalmOS clients. Designed algorithms
(three U.S. patents approved) for content synchronization.
Implemented client- and server-side Java classes for change
detection, synchronization, and conflict resolution.
1993 - 1999 Sun: COSE, Desktop Technologies
- Led Solaris Desktop Extensions project (5 engineers), which
used Win32 & Java to add to Solaris 8 a PC Launcher (for
opening apps/docs in Win32 hw or sw emulators) and a Java media
player. For Solaris 7, the project created an address mgr
(sdtname), process mgr (sdtprocess), file finder, and window mgr
graphical customizer. Coded sdtname and sdtprocess using C++ and
Motif.
- Designed and helped implement the incorporation of ToolTalk
into the window mgr, file mgr, action system, Korn shell, &
app builder of CDE (the Sun/HP/IBM COSE standard desktop).
Authored ToolTalk and Open Protocols (SunSoft Press,
1994). Designed and implemented integration of CDE file mgr with
removable media (e.g. floppies, CDs) in Solaris 2.6.
1990 - 1993 Sun: DOE (Distributed Objects Everywhere)
- Designed, implemented, and evangelized the ToolTalk
interfaces adopted for the ANSI X3H6 CASE IPC standard. Designed
and evangelized TT interfaces incorporated into Sun's Workshop
and DeskSet products. Helped implement TT features,
thread-safeness, performance, security, and bugfixing. Helped
create transition strategy from TT to DOMF (Sun's CORBA ORB).
- Helped develop ToolTalk 1.0: Sun's C++-based cross-platform
middleware for IPC among persistent distributed objects.
Designed and implemented remote API and message tracing;
integrated Unix file utilities with TT persistent objects.
Created ttsh scripting shell and CoEd, an open-source groupware
editor demo.
Education
- 1990 U. of Michigan - M.S., Computer Science
- 1987 U. of S. Mississippi - B.S. Computer Science
Patents
- Facilitating
Multigame Currencies In Multiple Online Games, U.S. patent
9895613 issued 2018 filed 2014
- protects deposits and withdrawals with different security
levels using only 3rd-party authentication
- Facilitating users to obfuscate user credentials
in credential responses for user authentication, U.S.
patent 9172697 issued 2015, filed 2013
- a way to securely input a password on an untrusted or
monitored device
- Textual
Authenticity Detector, U.S. patent 8353008 issued 2013, filed 2008
- mathematical analysis of grammar and lexicon to detect
frivolous text
- File
Tree Comparator, U.S. patent 7702641 issued 2010, filed
2001
- File
Tree Conflict Processor, U.S. patent 7165248 issued 2007,
filed 2001
- File
Tree Change Reconciler, U.S. patent 7085779 issued 2006,
filed 2001
- these three patents implement a variant of the lock-free
Distributed Operation Transform (dOPT) algorithm as applied to
file trees
- Graphical
Action
Invocation Method, U.S patent 6433800 issued 2002, filed
1998
- extends the right-click context-menu idiom as a toolbar of
drop sites, to allow dropping "direct objects" onto any of
these actions (verbs)
Projects, Publications, Presentations
- Zoe: an artificial
life simulation (source here) in which
organisms hunt, fight, mate, and reproduce under the control of
programs that mutate and evolve
- "Webtop Synchronization using Java, XML, and SyncML", JavaOne
2001
- "Desktop Solaris", Sun Developer Connection HQ Briefing, 1998
- ToolTalk
and
Open Protocols, SunSoft Press, 1994
- "Ch. 7: ToolTalk and DeskSet Integration", in Solaris Desktop
Integration Guide, SunSoft Press, 1992