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

--------------------------------------------------------------------------