Andrew Otto


To learn, teach, and grow by experiencing.


The College of William and Mary, Williamsburg, VA 2001-2005

Bachelor of Science in Computer Science, with a minor in Mathematics

Relevant Courses

Software Engineering (as a project manager), Operating Systems, Networking, Web Programming, Database Systems, Simulation, Finite Automata, Systems Programming, Applied Statistics, Linear Algebra


PHP, bash, Ruby, Python, C, Java, Puppet, Sphinx, Gearman, Scribe, Apache Hadoop (Pig, Oozie, etc.), Apache Kafka, memcached, MySQL, Linux (CentOS/RedHat,Ubuntu/Debian), HTML/CSS, git, svn, Scratch


Analytics Systems Engineer, Wikimedia Foundation

April 2012 - present

  • Designed, Puppetized and deployed big data analytics data services platform (Hadoop, Storm, Kafka, etc.)
  • Created analysis batch job prototypes using Hadoop, Pig, Oozie, Hue and Hive
  • Refactored site specific several Puppet manifests into reusable Puppet modules
  • Took over maintenance of legacy UDP based webrequest logging service
  • Created Debian packages for Python, Java and C libraries
  • Supported Data Analysts in their never ending search for knowledge :)

Lead Systems Administrator,

December 2007 - February 2012

  • Scaled site from 300K users and ~5 servers to 3M users and ~30 servers and 100M pageviews / month
  • Coordinated a team of systems administrators
  • Read and commented on thousands of developer code commits
  • Re-architected monolithic database into a scalable sharded model
  • Managed creation and addition of MySQL replication slaves using LVM snapshots
  • Performed successful MySQL upgrades and master migrations with zero downtime
  • Configured and optimized distributed Sphinx search indexes and instances
  • Designed and built a large scale batch campaign email and internal messaging system using Gearman
  • Coded custom database schema migration system
  • Participated in code architecture design phase of project management
  • Migrated image hosting to Amazon S3
  • Implemented configuration management system using Puppet
  • Configured and deployed HTTP load balancers, web, SMTP, and database servers
  • Installed wiki for tech information and documented much of the backend configuration
  • Created PHP/Ajax web interface for approving and deploying subversion code commits
  • Wrote custom MySQL backup system to allow for point in time restores of all databases
  • Modified custom email spool system so that it will scale to any number of (postfix) SMTP servers

Systems Administrator, Fave Media, Inc., Chicago, IL

September 2006 - November 2007

  • Co-developed Ruby on Rails rewrite of Fave software, with focus on server setup and deployment
  • Designed and implemented back-end application server (in OO Perl/MySQL) for interaction with Fave client application
  • Developed several software tools for monitoring vital network services
  • Constructed and administered in-office LAN, DNS, and firewall security policies
  • Maintained 24/7 system operation, backups, and subversion repositories
  • Set up and configured server hardware in-office and at collocation sites, including installation of third party software utilities
  • Supervised office technology, including VoIP, purchasing, vendors, and internal support
  • Educated co-workers about HTML and Flash web design

Consultant, CGI Group Inc., Chicago, IL

September 2005 - September 2006

  • Developed and customized software components for CGI’s Advantage ERP Application
  • Worked closely with clients while providing on-site support for extended engagements
  • Installed, configured, and upgraded specific ERP applications and components
  • Educated clients on XML, HTML, and Java for use in Enterprise environments

Assistant Cluster Administrator, SciClone Computing Cluster, College of William and Mary

May 2003 - May 2005

  • Designed and implemented (in Java and C using SNMP and kstat) extensive systems and network monitoring tools for a heterogeneous cluster of over 200 Sun Solaris nodes
  • Administered cluster user accounts
  • Installed and maintained scientific computing hardware and software
  • Worked 20 hours per week while attending classes full time, worked full time during breaks

Network Engineering Assistant, Information Technology, College of William and Mary

March 2002 - May 2003

  • Responded to and resolved network trouble calls
  • Diagramed (using Microsoft Visio) entire campus network topography
  • Installed and upgraded network hardware
  • Worked 20 hours per week while attending classes full time, worked full time during breaks

Activities and Interests

Classical guitar, modern physics, photography, bike polo, traveling, potlucks, making things, contra dancing.

Public Code Samples

PDF Version | Text Version