[ Resume | Home page ]

Matthew "Xeno" Derer

matthew@alumni.caltech.edu

Objective

Available for software and database engineering consulting, either providing advice and support to engineers and managers or doing hands-on development, tuning, and troubleshooting. Available on-site in the Los Angeles area or working remotely via Internet elsewhere.

Education

BS Computer Science, Literature
California Institute of Technology, Pasadena, CA
GPA: 3.1
June 1994

Experience

Data Warehousing Consultant
OpenX (via Surfliner Services)
March 2010 - present (as of November 2010)

Reviewed reporting database schemas and code for standalone ad server and online ad exchange advertiser- and publisher-facing systems (PHP/MySQL). Designed and implemented new warehouse schema and ETL (Perl/MySQL) based on that review and new requirements, integrating aggregate data from Hadoop grid processing (Java), near real-time updates from memcached-based counters (Java/Thrift), and dimension data from the administrative front-end (PHP/JSON). Supported report development and helped to improve report performance through rollups and query changes to work around limitations in MySQL.

Software Engineering Consultant
AT&T Interactive (via Surfliner Services)
April 2010 - June 2010

Designed, implemented, documented, and supported a Hadoop MapReduce component (Java) used to perform a complex join with configurable output bucketing in ETL feeding into an online advertising data warehouse.

Software Engineering Consultant
Prama Corporation
February 2010 - March 2010

Developed Hadoop Pig queries (Java) for basic analysis of usage data for an image metasearch engine, including a JSON-capable Pig storage UDF and integration of Python and Perl user agent parsers, and documentation for running queries in Amazon Elastic MapReduce.

Software Engineering Consultant
Surfliner Services
September 2009 - October 2009

Reviewed prototype management system for Hadoop grids on behalf of potential investors/partners. Reviewed code and components used in system consisting of multiple web services and web UI involving Python, Java, Perl, PostgreSQL, MySQL, and Hadoop. Provided detailed catalog of current state of components and code functionality, along with consideration of functional areas not yet implemented in the prototype.

Data Warehousing Consultant
AdECN (now merged into Microsoft adCenter) (via Surfliner Services)
October 2008 - June 2009

Worked with data warehousing team and transaction system team to build a data warehouse system capturing the activity of an online advertising exchange. Designed and implemented ETL integrating and rolling up multiple data feeds using an in-house grid-computing framework based on SQL Server Integration Services, an in-house distributed filesystem, a proprietary scripting language, and C#, including extensive testing, documentation, and support.

Full-time Student
National Taiwan University ICLP
August 2007 - September 2008

Lived in Taiwan and studied Chinese full time at National Taiwan University's International Chinese Language Program.

Database Engineering Consultant
Apani (via Surfliner Services)
May 2007 - June 2007

Reviewed network security management system software (Java) and database schema (Oracle) and made recommendations with respect to indexing, locking, trigger use, robustness, database tuning, and encryption support in various JDBC drivers.

Data Warehouse Consultant
Spot Runner (via Surfliner Services)
December 2006 - September 2007

Worked with business users, transaction system team, and data warehousing team to build a data warehouse system capturing activity in a web-based application used by advertisers to purchase and manage advertising on cable networks. Assisted in requirements gathering and schema design. Defined and documented interface with transaction system. Designed and implemented ETL (SQL Server/C#/XML), including testing, documentation, and support.

Lead Developer
Surfliner Systems
December 2005 - August 2006

Collaborated on development of a prototype web-based reporting system, adding richer AJAX-based UI features to the open source OpenReports report server. Worked with colleagues to define product requirements, developed server-side functionality in Java leveraging Spring and Hibernate, and developed dynamically configurable reporting dashboard web UI in Javascript.

Consultant - Senior Database Engineer
Symantec Corporation
January 2003 - June 2005

Provided advice and technical expertise in the development of a Java-based security event data warehouse and management system. Supported developers and QA engineers as they worked with Oracle and Solaris, many for the first time. Provided technical advice to managers and architects, and worked closely with other database engineers in design, performance work, and debugging.

Added Oracle and SQL Server support to the existing DB2 support by modifying SQL, XML/XSLT, and Java servlet code to work around differences in syntax and semantics between databases as well as JDBC driver issues, ensuring robust data storage and retrieval and internationalization support. Provided scripts, config files, and migration tools, including schema conversion to support Oracle range partitioning, and materialized views and summary tables for Oracle and DB2.

Assisted in database and application performance tuning and troubleshooting, as well as a major schema re-design, modifying servlet code to hide schema changes from the rest of the application and ensure compatibility with third-party modules that plug into the system. Engaged in knowledge transfer at the end of the engagement to bring new team up to speed on the codebase.

Lead Developer
Overture Services, Inc. (originally GoTo.com, now part of Yahoo!)
March 1998 - November 2002

Helped design, build, and/or scale up most of the major operational systems of the pay-per-click search pioneer, from founding of the company with only a handful of employees to pay-per-click powerhouse with $667M annual revenue and international expansion as of 2002.

Designed and built the original paid-listing database (Oracle) and the server code to query it (Java, ATG Dynamo app server), as well as nightly processes to upload listings changes from customer service. Tested and tuned performance of the server and database before the initial site launch.

Designed, built, and supported a customer database and a web-based listings management system using Apache mod_perl and Oracle, working closely with users in customer service and sales. Provided for efficient batch uploading of tens of thousands of listing changes at a time, asynchronous processing of large batches, optimistic locking to support multiple users modifying the same data, and efficient synchronization of listings data with the serving systems.

Assisted in the design and development of web-based account and listings management tools for advertisers. Helped developers integrate with the advertiser and serving databases. Built components for advertiser authentication, and developed a scheme using random tokens to solicit initial passwords from existing advertisers securely via email and web.

Architect and lead technical troubleshooter for a major multi-team development and integration project, deploying Windows-based CRM package Silknet, a Java GUI app for paid listings order processing and editorial review, and a host of Solaris-based Java EJB services to provide data persistence and sharing for the GUI app, integrate with Silknet, and track customer account balances, charging credit cards or pulling accounts offline as needed. All backed by Oracle databases. Coordinated development efforts among three different teams, worked with engineers on design and troubleshooting efforts, and got hands-on to resolve more difficult technical problems, including Windows-to-Java service integration via XML over HTTP, performance bugs in object serialization, and last-minute tuning of database queries throughout the services.

Scaled up back-end site search and click statistics processing by offloading some data aggregation processes from a multi-TB Oracle data warehouse to clusters of Linux machines. Developed a framework in Perl, C, and shell scripts to stream data through various aggregation pipelines, allowing dozens of SMP machines to safely coordinate and parallelize the analysis work before uploading aggregate results to reporting datamarts and the account monitoring system. Supported and worked closely with engineers using the framework to offload existing aggregations or create new ones, and operations engineers monitoring and maintaining finished ones. Debugged and developed patches for Linux kernel to fix robustness and stability issues, including an intermittent loss of floating point state and race-conditions, lockups, and data corruption issues in the NFS client.

Software Engineer
Prama Corporation
October 1997 - February 1998

Worked with a small group of software engineering consultants to enhance a search engine prototype for Idealab, working primarily in C and Perl. Optimized performance of the initial prototype to prepare it for demos. Added support for typical search engine operators like exact phrase match and boolean AND, OR, and NOT. Developed additional prototypes that simulated editorial control of listings, user voting on results, and pay-per-click search.

Software Engineer
Presence Information Design
April 1996 - September 1997

Developed Java and C interfaces to relational (Oracle), geographical (MatchWare), and intelligent text search (RetrievalWare) databases. Used these interfaces to build a multi-threaded object server in Java to provide object persistence and complex query capability for one of the first localized business search sites on the web, Pacific Bell AtHand.

Discovered and fixed bugs and performance flaws in Sun's Java Virtual Machine 1.0.2 implementation involving memory management and thread scheduling. Published a white paper explaining the problems, as well as fixes.

Also did design and code work for research projects on a dynamic HTML language and intelligent, cooperative Internet object caches.

Technical Staff
Oracle Corporation
July 1994 - April 1996

Ported C code for the Oracle database kernel, network protocol adapters, and pre-compilers from Solaris to AIX. Ran and developed QA suites, resolved test failures, modified AIX-specific code modules, resolved esoteric bugs and created patches for customers. Developed and shared programs, scripts, and documentation to assist in these tasks.

Computer Programmer
First Quadrant Corporation
December 1993 - June 1994

Translated financial reports from Advent to Sybase database systems to facilitate database migration. Responsibilities also included C programming, working with analysts to determine report specifications, and collaborating in the C++ design of in-house financial software.

Computer Programmer
Caltech Economics Department
Caltech Economics Department
Caltech Electrical Engineering Department
August 1993 - March 1994
June - August 1992
June - August 1991

Designed and implemented graphical user interfaces for game theory representation and solution software (Economics Department), for statistics software (Economics Department) and for information theory software (Electrical Engineering Department), all used in research or coursework. Wrote software in C and C++ under Unix for X Window System and Microsoft Windows.

Skills

Here's a brief sample of technical skills. Some of these go quite deep, I've worked with Oracle since 1994, Java, Linux, and web technology since 1996.
[ Resume | Home page ]

Document last modified: Sun Oct 31 22:37:38 PDT 2010

MD