J. David Lowe Rogue River, OR - 541-659-7982 - j.david.lowe@gmail.com Software Engineer ================= Accomplished programmer with a proven ability to design and deploy highly optimized back-end software. Eight years' system programming experience and two years' system administration experience. Objective ========= A software engineering position which keeps me continuously inventing, designing, and coding solutions to difficult technical problems. Technical Skills ================ Programming Languages: C, C++, Java, Haskell, Perl, PL/SQL, awk, sh Programming Habits: revision control (Perforce, CVS, etc.), compiler discipline ('gcc -Wall -Werror', 'use strict', etc.), static code analysis (lint), consistency of style, comments and documentation, automatic testing Programming Tools: vi, GNU make, Bugzilla, interactive debuggers (gdb, perl -d, etc.), profiling tools (gprof, etc.), Purify, system call tracing software (strace, truss, etc.) Programming Expertise: system-level programming, TCP/IP, IPC, performance analysis and tuning, regular expressions, database interfacing, foreign function interfaces (XS, JNI) Database Software: Oracle, Berkeley DB, mySQL Operating Systems: BSD and System V derived UNIX (FreeBSD, Solaris, Linux, etc.) Job Experience ============== COLLABNET Senior Software Engineer, February 2007 to present Designed and implemented system software in Java and Python using mySQL databases within the Liferay framework. Key Contributions: * Oversaw the integration of e-mail testing into an existing realistic performance test suite: gathered usage statistics from production, designed and set up measurement instrumentation, analyzed and reported on test results, and collaborated on software and configuration changes to improve performance. The new e-mail software was released into heavy usage in August 2007. TOPICA Technical Lead, November 2005 to December 2006 In addition to continuing my duties as Senior Messaging Engineer, I provided technical leadership to a small team, including vetting of design decisions, participating in code reviews, and training new employees. Key Contributions: * Proposed, designed and implemented scripts so that multiple environments (development, staging, production) shared a single, documented, repeatable process for deployment and configuration of the software. These scripts, written in bash and perl, replaced dozens of environment-specific configuration files and scripts, many of which were not under source control. Senior Messaging Engineer, December 2000 to November 2005 Designed and implemented system software in C, Perl and PL/SQL using BEA TUXEDO and Oracle databases via Pro*C and OCI. Acted as informal liaison between development and operations groups. Also acquired responsibility for the build system, the Perforce depots, and Bugzilla. Key Contributions: * Optimized existing outbound SMTP software, including qmail, written in C. Original software required approximately $25,000 of hardware to send a million messages daily. Optimized software requires approximately $1000 of hardware to send a million messages daily. At peak, this software sent 150,000,000 messages daily. * Designed and implemented a cost-driven message prioritization layer, using a genetic algorithm, written in C. This software does logical bandwidth limiting and message ordering, continuously adapting to minimize the cost of the outbound message queue. * Designed and implemented a unified bounce and unsubscribe handling system to reliably process twenty million bounces and unsubscribes daily across multiple products. This system uses Berkeley DB databases to store bounce histories, and a horizontal partitioning architecture for lock-free parallelism. DAN KELLER TECHNICAL SERVICES Technical Trainer, March 2000 to May 2003 Provided intensive technical training in Perl, Apache and mySQL for clients such as Hewlett-Packard, SGI, and Autodesk. WEBJUICE Software Engineer, June 1999 to January 2000 Designed and implemented software in C and Perl, focused on creating a set of reusable tools for rapid development of new e-commerce software and web sites. Key Contributions: * Designed and implemented a set of tools and libraries for fast, high-volume reliable multicast communication from C and Perl applications. This system uses memory-mapped files for reliable local queues, and a publish/subscribe multicast protocol. * Designed and implemented a fast, flexible library for driving templated content from C, C++ and Perl programs. The main feature of this library was strict separation of code and content. This library was open-sourced on CPAN as Text::Tmpl, and is in heavy use in several production environments. LINKEXCHANGE Software Engineer, July 1998 to February 1999 Designed and implemented software in C and Perl, as part of a small team of developers. Key Contributions: * Designed and developed a web crawler in C, which audited LinkExchange network sites to determine whether they were actually displaying a LinkExchange banner. The software crawled approximately 10 million pages daily from a single machine, and the results were used by Media Metrix to calculate LinkExchange's reach. This metric was a key selling point in LinkExchange's $250 million acquisition by Microsoft in 1998. * Implemented the database caching layer of the LinkExchange real-time ad targeting software. This software used System V IPC mechanisms to share the cache objects. The database cache handled hundreds of millions of queries in serving up to 50 million targeted ads per day. Systems Administrator, October 1997 to July 1998 Administered all aspects of the production environment -- consisting of dozens of FreeBSD servers -- including sole pager responsibility. Key Contributions: * Proposed and implemented the transition from replicated local storage of ad creatives to central, networked storage using a Network Appliance file server. This allowed LinkExchange to scale from 5 million to 50 million ads served daily, while reducing the number of ad servers from 15 to 5. SIRIUS CONNECTIONS Systems Administrator, December 1996 to October 1997 Administered a cluster of FreeBSD servers and NeXT slabs as part of a very small technical staff. Provided technical support to customers via e-mail. STANFORD UNIVERSITY GRADUATE SCHOOL OF BUSINESS Operations Assistant, June 1996 to December 1996 Assisted in the administration of a mixed network of VAXen, Sparc servers and dumb terminals. Awards ====== 2000 International Obfuscated C Coding Contest "Worst Abuse of the Rules" 1998 International Obfuscated C Coding Contest "Best Utility" 1998 International Obfuscated C Coding Contest "Most Fun" (with Neil Mix) Professional Affiliations ========================= IEEE Computer Society Member ACM Professional Member