James Long
[address withheld]
Milpitas, CA 95035
Home : [email for more information]
Cell : [email for more information]
Email: james [at] jameslong [dot] org
-----------------------------------------------------------------------------
OBJECTIVE
February 2011 marks four years with Google, and I still can't imagine a
better place to work. I am not actively seeking employment at this time.
-----------------------------------------------------------------------------
EMPLOYMENT HISTORY
November 2011 - Present
Staff Software Engineer - Google.com
Payment Fraud
Promoted to Senior Software Engineer November 2011.
Developing a signal aggregation engine to compute several classes of signals
heavily utilized by our models. The system allows us to compute hundreds
of updates per second to hundreds of signals, in real time. Vastly reduced
time to add signals, time to adapt to fraud trends, and query latency
in our models.
November 2010 - November 2011
Senior Software Engineer - Google.com
Payment Fraud
Promoted to Senior Software Engineer November 2010.
Developed a prototype aggregation engine for computing a class of signals
we have found to be very handy - added nearly 100 unique signals to our
various models as a result.
Troubleshooter and maintainer for our team's core infrastructure. Improved
several issues in the threading model for our core service, more than
tripling our throughput for our most expensive query.
Member of the Hiring Committee (reviews interview feedback / referrals /
etc. and decides which candidates we should make offers to).
Two time member of the Day One Promotion Committee (makes the initial
decision on whether to promote people who were nominated for promotion).
November 2008 - November 2010
Software Engineer III - Google.com
Payment Fraud
Developed signals and a model for detecting policy abusers (scams, etc.).
Integrated with several other teams doing similar work, to share data.
At the time of handoff to my replacement, the model was suspending ~10x
the number of accounts that we have the capacity to manually review, which
was a major boost, given that we had been previously completely relying on
manual reviews.
Developed a system for automated customer relation detection, which allows
swaths of bad customers to be shut down at once, in many cases, reducing
the number of manual reviews by an order of magnitude.
Developed our first model for detecting account hijacking / phishing, which
reduced hijacking fraud spend by 95% (~$2M / month).
February 2007 - November 2008
Software Engineer III - Google.com
Site Reliability
Tech Lead for Apps for Your Domain - Site Reliability.
Troubleshoot, improve, and handle on-call for teams like GMail, Apps
for Your Domain, and Google's authentication service.
Create and support systems to ensure that our applications are always
running, available, and fast.
Capacity planning and production architecture design, logs analysis,
monitoring, etc.
April, 2005 - January 2007
Software Developer II - Amazon.com
Automated Targeted Email
Designed, implemented, tested, deployed, and supported software systems
with an end goal of sending millions of highly targeted emails per day.
* Collaborated on a project with another engineer to create a
"Price Drop" email program, one of the three most successful targeted
email programs Amazon in its time.
* Provided guidance to an SDE I through his first technical lead role,
resulting in increased responsibility for him and facilitating his
candidacy for promotion during the next review cycle.
* Lead a team of three software developers and two QA engineers on a 3
month project to create an opt out system compatible with our new
platform. Utilized Java, Hibernate, Oracle, and two Amazon internal
middleware layers to create a three-tiered system capable of exposing
the data to our public website.
* Lead a team of three software developers and two QA engineers on a 6
month project to further improve the stability and usability of the
Single New Product program, while improving targeting quality.
Utilized Perl, Mason, C++, Oracle, and numerous Amazon data sources to
create a CGI for internal customers to create and edit email campaigns.
From launch through January 2007, this was consistently one of the
highest performing marketing mails sent out.
* Lead a team of two software developers on a two month project to create
a customer-information cache for our email system, which reduced our
dependency on one of the most vital systems at Amazon, allowing them to
scale to meet demand for Q4, 2005.
* Served as the primary on-call for up to 11 Oracle databases at once.
Responsibilities included routine maintenance and troubleshooting (such
as adding datafiles, troubleshooting issues with the hot-standby's
replication, and analysis of troublesome queries)
July 2002 - April 2005
Software Developer - Amazon.com
Automated Targeted Email
Developed, revised, and contributed to software applications and
services with increasing levels of responsibility, in collaboration with
senior engineers, and ultimately independently.
* Maintained an outstanding level of support and issue resolution in a
regular on-call rotation, ultimately becoming the most efficient
ticket closer on our team, based on net ticket closure.
* Improved the recipient loading system for our core mail systems, from
being able to load a few million recipients per day to being able to
load nearly 40 million per day.
* Worked with a Senior Software Developer to create the email team's
targeting server, and the backing database, which is a
multi-terabyte Oracle instance. Utilized Perl, Java, Tomcat, Oracle
and SOAP.
* Created algorithms to automatically find newly released products,
and automatically target email campaigns to promote them, increasing
the number of messages we sent in the Single New Product program (one
of our best performing email programs) by nearly 15%, with equivalent
lift to manually created mails.
* Reduced the time it took to target a weeks worth of mail for the
Single New Product program from 48 hours to 4 hours.
August 2001 - May 2002
Freelance Developer - NetMath at the University of Illinois - Urbana-Champaign
Contracted to create a virtual classroom and homework hand-in system
called ClassComm for the NetMath distance education group at the
University of Illinois.
* Worked directly with the professors running the group to determine
the requirements, and ensure the design would meet their needs.
* Delivered the project in five stages, insured acceptance at each stage.
* Implemented a website in PHP with a MySQL backend which displayed
assignments and announcements, allowed students to communicate with
each other via forums and chat, and allowed students to directly
upload their Mathetmatica based assignments.
* While you cannot access the system without a login and password, an
intro video is available at:
http://cm.math.uiuc.edu/classcommintro.php
Summer 2001
Software Development Intern - Microsoft
Media Player
* Challenged to create a plug-in which would allow Media Player to be
embedded in Netscape, without running afoul of licensing issues.
* Developed a component utilizing a Java Applet utilizing JNI.
* Worked with a full-time developer to develop a code generator
which generated Java wrappers for arbitrary COM objects, based
on the interface defined in their IDL files.
Summer 2000
Software Development Intern - Microsoft
Learning Technologies Group
* Interned with two other interns to develop a prototype of an online
training application with features such as streaming video/audio,
user-driven questions, polls, notes, and more. Wrote the website
in HTML with heavy Javascript, and wrote a few auxilary COM objects.
-----------------------------------------------------------------------------
UNPAID POSITIONS
August 2002 - February 2004
Head Coder (Dev Lead) - FieryMUD.org
* Designed and helped implement portions of a yet unreleased major
revision of the game, written in C, including shifting from flat-file
storage, to an easily extendable MySQL setup.
* Created the framework for various systems in the game in order to
ease later additions; for instance, added several mathematical
functions to ease damage calculations for spells, such that adding
new ones amounted to writing a few lines of configuration.
* Created an easy to use library for running MySQL queries from within the
MUD, using a sprintf style syntax for queries, and a simple structure
for maintaining results.
* Contributed bug fixes back to the "stock" code base from which the MUD
was derived, using tools such as Insure++ and gdb to find the errors.
* Kept our codebase up to date with patches from the "stock" code
(CircleMUD, DGScripts, and OLC).
* Code reviewed all code being submitted to our repository, and advised
other coders on design and implementation.
August 2002 - December 2002
Coder - FieryMUD.org
* Responsible for major bug fixes which drastically improved the uptime of
the game server.
* Found and corrected memory leaks.
* Eliminated all compiler warnings, even when compiled with gcc using the
-pedantic flag.
* Maintained a presence with the players to gather feedback.
* Improved the scripting system to facilitate the creation of complex
quests.
* Implemented new features and reworked old ones to promote game balance.
* Participated in peer code reviews.
-----------------------------------------------------------------------------
TECHNOLOGIES AND SKILLS
Currently utilized skills:
Java (JSP, log4j, JUnit), Python (for data munging), Sawzall (Logs mining)
IntelliJ, Emacs
Git, Perforce
Weka (Machine Learning tool - http://www.cs.waikato.ac.nz/ml/weka/)
Bigtable, MapReduce, and numerous Google internal technologies.
Technical Interviewing (~300 inteviews between Google & Amazon)
Hiring / Promotion Committee
OOA/OOD/OOP
Previously utilized skills:
Perl, PHP, HTML, two Amazon-proprietary middleware systems
C++ (and the STL)
SQL*Loader, Hibernate, Data Modeling, ER/Studio, Jetty, Apache, SOA
Used in a previous life, very rusty:
gdb, Totalview, Javascript, Subversion, CSS, ElectricFence, Insure++, RCS,
COM, Agile Programming, JNI
----------------------------------------------------------------------------
EDUCATION
August, 1998 - May, 2002
Bachelor of Science, Computer Science : Minor in Mathematics
University of Illinois at Urbana-Champaign (UIUC)
* GPA in core CS classes: 3.9/4.0
* Completed a senior project working with a business owner at Motorola.
Designed, developed, and demonstrated a system to be used to manage
research papers for an internal symposium.
* James Scholar (http://jamesscholar.cen.uiuc.edu/)
* Competed in the 2002 Jerry Sanders Robotics competition
(http://dc.cen.uiuc.edu/)
--------------------------------------------------------------------------
REFERENCES
Available upon request.
--------------------------------------------------------------------------
MORE INFORMATION
More details about projects I have worked on are available at:
http://www.jameslong.org/projects.php
The most recent copy of my resume is available at:
http://www.jameslong.org/resume.php
--------------------------------------------------------------------------