A senior software engineer with extensive experience at scale in a broad range of domains. I have:

Professional Experience

2019 - Present
Principal Engineer — Data Engineering — Change.org, San Francisco, CA

Technical lead for a new direction on the Data Intelligence team while maintaining legacy support.

  • Building a geographic recommendation engine for millions of daily active users, with a projected 5-figure monthly revenue potential. Extracting data signals from user event streams using Spark and Scala. Working with Data Science to deploy and compare multiple machine-learning models, and Product to prioritize business needs. Automated monitoring of the pipeline for early detection of faults and issues.
  • Improved Redshift cluster utilization by nearly 50% while auditing the 48-terabyte data warehouse and discovering several performance impacting use cases. On track to reduce the 6-figure cost center by half in the next year.
  • Built scheduled ETLs and collated a weekly sample data dictionary in Python with Apache Airflow.
  • Mentored junior developers on project management, coding standards, and software testing.
  • Collaborated on the Change.org Fellowship Leadership Team to develop and define this very successful program, exploring feasibility and costs, while maximizing benefit to the company and the participants. Also participated in candidate selection, and mentored the Data Engineering fellow.

2016 - 2018
Principal Engineer — Performance & Internationalization — Change.org, San Francisco, CA

Led the team driving performance and internationalization tools.

  • Drove engagement by empowering users and staff to deliver more timely signatures and comments to decision makers by extracting petition data export into a microservice that generated PDF and CSV files. Migrating PDF generation to Apache FOP also enabled far better multi-lingual support, and added support for right-to-left languages.
  • Reduced fraudulent signatures by over 20%, drastically curbing their support and safety workload, by integrating an external email validation service into site sign-up flows. This also led to an email deliverability boost by helping users with typos.
  • Planned and built developer and translator velocity improvement tool chain using a Serge workflow to reconcile changes between Agile feature development and batched translations needs. Added and open-sourced a Serge plugin for the OneSky TMS.
  • Took initiative with colleagues to find and present unconscious bias training. Originally aimed at the Product and Engineering teams, this training was widened to the entire company. After the presentations we worked with management and HR to upgrade hiring practices to combat biases, include bias consideration as part of employee growth paths, and integrate bias training into on-boarding.

2015 - 2016
Principal Engineer — DevOps — Change.org, San Francisco, CA

Volunteered to bring development bandwidth to an under-staffed Infrastructure team. Built and replaced tools, gave support to the team, helping them articulate needs and concerns to management, and worked with them to build a shared vision of team direction.

  • Reduced developer velocity cycle-time by an order of magnitude, risks and side-effects when making changes substantially, and server instantiation time by 90% by modernizing the configuration management stack to a streamlined, modular, unit-tested, standards-based Chef 12 installation.
  • Reduced cloud computing costs by 5-figures monthly building tools to provision newly instantiated servers from peers without a site-wide code deploy. These tools facilitated tighter tracking of capacity to actual need and also enabled better scaling during viral traffic spikes.
  • Led design and execution of aggressive relocation of the entire server stack to AWS with a two hour downtime window. This move led to a 6-figure monthly savings in expenditures, and opened up opportunities for auto-scaling and global data-locality.
  • Helped grow the team threefold; fostered pride in and mastery of the new tools through training, brown-bags, and individual support; built team dynamics and camaraderie; and evangelized the new tool set to the wider team, clearing the bottlenecks caused by DevOps as gatekeeper to the previous codebase.

2013 - 2015
Revenue Team Lead — Change.org, San Francisco, CA

Led the team responsible for the engineering aspects of company revenue. Managed client support tools, revenue stream experiments and optimization, and exploration of new revenue sources. Responsible for sprint planning; experiment design, execution, and integration; and team mentoring.

  • Managed design and development of the user petition promotion platform, creating a new revenue stream and growing it to multiple million dollars annually, taking a first step toward democratizing the funding of social movements. This product has become our dominant source of income.
  • Accelerated developer velocity and site scaling by building tools for live migration of highly active MySQL database table schemata containing millions of rows with zero downtime. Investigation of this problem led to several patch contributions to open-source tools.
  • Mentored developers and provided architectural, engineering, and personal development guidance. Contributed feedback via code review, one-on-one meetings, and regular employee review cycles.

2011 - 2013
Senior Software Engineer — Change.org, San Francisco, CA

Ruby-on-Rails developer and architect building the world’s largest social empowerment platform.

  • Led the tiger team to internationalize the application from US-only to 12 languages in 18 countries, opening up new markets and allowing international user acquisition to surpass domestic within 4 months.
  • Designed and built a proof-of-concept machine-learning ETL data pipeline using Cascading, Hadoop, and Amazon Elastic MapReduce.
  • Spearheaded, designed, and built tools instrumental in defusing several international brand crises by accelerating detection of fraudulent and spammy signatures.
  • Greatly improved security and developer velocity by rearchitecting authorization from invasive, custom code to a concise, abstracted, role-based configuration using Declarative Authorization.
  • Attended the invite-only, “We the People” Open Data Day Hackathon at The White House. Demonstrated a petition integration at the closing ceremonies.

2009 - 2011
App Genius — Context Optional, Inc., San Francisco, CA

Ruby-on-Rails architect and developer for social media applications on the Facebook Platform.

  • Developed and maintained high-volume, high-availability, highly-viral Ruby-on-Rails applications leveraging Memcached, Redis, Resque, and Sphinx; including Chase Community Giving, the #1 highest-volume, non-game application on the Facebook Platform.
  • Collaborated in agile, cross-functional teams at every step of an application life cycle: inception, design, architecture, implementation, release, and maintenance. Mentored and guided junior developers in building skills in agile development and software maintenance.
  • Company-wide revision control guru. Provided training, advice, support, and assistance for company Git repositories and their migration from Subversion.
  • Account management liaison for Fortune 500 clients, including J. P. Morgan Chase, LG, and Safeway.

2008 - 2009
Primary Developer — Emmet Labs, Inc., San Francisco, CA

Built and maintained a Ruby-on-Rails social media platform to plot the stories that bring us all together.

  • Reduced first full render time from over 30 seconds to under 500ms by removing several application bottlenecks in the server backend and the primary Flex/Flash widget. This reduction caused an orders-of-magnitude increase in user participation and engagement, and a correlated decrease in support complaints from users that the tool was “broken.”
  • Converted the entire application from Markaby templates to Haml/Sass. This simplified the templates and reduced errors, directly contributing to a reduction in development time of front-end features.
  • First technical hire. Collaborated with the technical founder to agilely deliver rapidly prototyped and deployed solutions in an RSpec-based, Behavior-Driven Development environment.

2004 - 2008
Senior Applications Engineer — CloudShield Technologies, Inc., Sunnyvale, CA

Rapidly prototyped and built complete customer solutions and platform customization including web user interfaces, reference implementations, and SDK components for the CA-5000 and CS-2000 Deep Packet Processing hardware and software platforms.

  • Led the Common Criteria EAL 4+ software security hardening and certification for the CS-2000 product line, opening up large new government markets, leading directly to a dramatic increase in sales.
  • Established a formal design methodology balancing the need for process against the required agility of a small company as the founding chairman of the Architectural Review Committee.
  • Integration Team Lead responsible for code quality, integration testing, requirements and standards compliance verification, project management and final sign-off.
  • Trained and mentored junior developers in agile methodology, object-oriented architecture, and database design.
  • Completely automated the creation of virtual machines with custom software for delivery to customers. This solution provided process repeatability, considerably reducing errors and simplifying QA test requirements.
  • Designed and built a pluggable framework for network applications providing device management, scheduling, and charting. This feature allowed developers to focus on the unique aspects of their particular feature, and saved significant development time on several applications.
  • Designed user interfaces with Java, Ruby-on-Rails, PHP, and CGI; built Eclipse plugins and RDP applications; remote interfaces with SOAP; system programming in C, C++, Perl, Python, and shell; ported Linux kernel modules from 2.4 to 2.6; and added SELinux strict refpolicy definitions for custom software; and built deep-packet processing modules in CloudShield RAVE.

1999 - 2001
Senior Web Engineer — Topica, Inc., San Francisco, CA

Developed the Topica Email Publisher web application, including tools for its support, maintenance, and testing. Mentored junior developers in software engineering, object-oriented and database design.

  • Increased QA productivity several-fold by creating a test harness for web applications that simulated complete user sessions, modifying behavior based on responses. The tool reduced test-case creation time from days or weeks to hours. Further, test modularization allowed for substantial reuse.
  • Built the first revenue-generating product in less than 30 days when it was crucial for company survival.
  • Spearheaded the “impossible” project to bring our large, mod_perl-based application into strict pragma compliance. This undertaking identified and corrected many long-hidden problems. When completed it enabled the team to discover defects in new development much earlier, thereby saving time and greatly improving productivity and quality.

1998 - 1999
Lead System Software Engineer — Content Management System — Intuit, Inc., Mountain View, CA

Rebuilt the internal content management system for Quicken.com, resulting in a consistent, maintainable system that better accommodated and anticipated user needs.

  • Revolutionized the application workflow by adding a test suite with page previews for user specified dates and locations, substantially reducing errors and improving productivity in the entire process.
  • Improved data file generation process performance by more than an order of magnitude by refactoring the monolithic, complex display engine into a collection of small, versatile components.

1997 - 1998
System Software Engineer — Quicken.com Infrastructure Group — Intuit, Inc., Mountain View, CA

Developed and extended tools and systems for the diverse partner sites of the Quicken Financial Network. Designed and built a template system with inheritance and separation of content and presentation.

  • Anticipated a need for, and rapidly developed and deployed a browser-based, data file management system.
  • Took initiative and control of key critical path tasks to ensure an on-time delivery of a major software release.

1994 - 1997
Webmaster / System Programmer — GALT Technologies, Inc., Pittsburgh, PA

Conceived and built software and tools for the NETworth website network. Instituted new, automated processes including a link integrity spider and concurrent version control. Automated and improved many existing processes, greatly reducing both turnaround time for content update and the number of errors in the system.

Education & Interests

2016
SPARK

Mentored 7th and 8th grade students weekly to develop skills, cultivate a growth mindset, and illustrate how school subjects can relate to fun projects and career opportunities.

1998 - 2002
CompuMentor

Taught non-profit and public school staff and volunteers hardware and software skills to help them in their duties. Built and maintained a database application to help a non-profit track membership.

1998
University of California at Berkeley Extension

Project Management for Software Engineers

1991 - 1994
Carnegie Mellon University, School of Computer Science

B.S. Computer Science (incomplete)

Technical Expertise

Languages, Protocols, Libraries, and Frameworks

  • Java,
  • Scala,
  • Python,
  • Ruby,
  • Rails,
  • RSpec,
  • Javascript,
  • Node.js,
  • jQuery,
  • React,
  • GraphQL,
  • C,
  • C++,
  • Perl/XS,
  • PHP,
  • TCP/IP,
  • HTTP,
  • LDAP,
  • SELinux policy development

Applications

  • Spark,
  • Hadoop,
  • PostgreSQL,
  • Redshift,
  • Cassandra,
  • Amazon Elastic MapReduce,
  • MySQL,
  • Redis,
  • ElasticSearch,
  • MongoDB,
  • Oracle,
  • Chef,
  • Terraform,
  • Cascading,
  • Sphinx,
  • Eclipse,
  • Git,
  • Apache HTTPD,
  • nginx,
  • Phusion Passenger,
  • Kafka,
  • RabbitMQ,
  • Sidekiq,
  • Resque

This resume was created from XML conforming to the HR-XML Consortium's Resume Schema using Xalan XSLT transformation.