This is my standard resumé. For additional details on what I seek in a role and/or an employer, please see my hiring page.

Highlights

  • Python/Ruby engineer since 2004 and 2007, respectively.
  • Unix/Linux sysadmin since 2005.
  • Author and maintainer of Fabric (fabfile.org), an open-source SSH scripting library written in Python and used by many Web developers and system administrators. Involvement began in 2009.
    • Now also the maintainer of Fabric’s primary dependency, Paramiko (paramiko.org) in addition to spawning a number of other smaller projects related to project management.
    • Maintainer of the Alabaster theme for the popular Sphinx documentation toolkit. Alabaster is the default theme for Sphinx as of version 1.3.
  • Contributor to a handful of other open source projects, notably Django and Graphite.
  • Co-author of the 376-page Python Web Development With Django (withdjango.com), 2008, Addison-Wesley. It was in the top ten best-selling Python books on Amazon and other retailers for about a year post-publication, and is still sold today.
  • Member of the Python Software Foundation.

Skills

  • Programming languages:
    • Good at: Python, Ruby, Unix shell
    • Okay at: HTML (including various template languages), CSS (ditto) and JavaScript
    • Have tinkered with: Clojure
    • Have been exposed to: Java, C/C++, Erlang, Go, Scala, Haskell
  • Operating systems:
    • Linux (Debian & RedHat families)
    • Mac OS X
  • Tools:
    • Configuration management: Chef
    • Databases, relational: PostgreSQL, MySQL
    • Databases, non-relational: Redis, MongoDB
    • Logging: rsyslog, Logstash
    • Mail: Postfix
    • Monitoring & metrics: Graphite, Nagios
    • Text indexing: ElasticSearch
    • HTTP: NginX, Apache

Employment

  • July 2016 — present: Senior Software Engineer at mLab, San Francisco, CA
  • June 2012 — March 2016: (Lead) Operations Engineer at Urban Airship, San Francisco, CA
    • Overhauled and/or augmented orchestration tooling (Fabric), configuration management (Chef), truth/management database (Clusto), package building (Gear/Mock/RPM) and the build/CI server (Jenkins).
    • Implemented a second-generation Graphite-oriented metrics stack (2.6MM metrics/minute!), including a focus on clustering, reliable metric transport and third-party dashboard integration.
    • Built & maintained an ops-oriented IRC bot providing responsive, efficient access to various tools (config management, build system, deploy queue, orchestration, oncall escalations & paging, etc).
    • Helped promote & maintain an engineering-oriented documentation culture.
    • Partook in the production oncall rotation, handling incident response.
  • March 2012 — June 2012: Operations Engineer at CBS Interactive, San Francisco, CA
    • Continued supporting former Whiskey Media sites including Giant Bomb, post-acquisition.
    • Helped create new development & production infrastructure for in-progress rebuild of Whiskey Media and CBSi web properties (e.g. Giant Bomb, GameSpot.) Vagrant, Fabric, Chef, PHP-FPM, MySQL & NginX.
  • Jan 2011 — March 2012: Operations Engineer at Whiskey Media, San Francisco, CA
    • Implemented the following new support systems:
      • PostgreSQL streaming replication, backups & offsite backups.
      • Metrics gathering and monitoring/alerting system using Collectd, Graphite and Nagios, including custom dashboard application.
      • Centralized logging and log parsing/indexing with Logstash and ElasticSearch.
    • Supported existing in-house deployment and configuration management systems, including custom Fabric development.
    • Participated in troubleshooting and maintenance of production environment.
  • Jul 2007 — Jan 2011: Systems Administrator/Developer at Digital Pulp, New York, NY
    • Developed client-facing CMS and e-commerce Web sites on various platforms.
    • Managed, monitored production Web servers for variety of clients.
    • Managed internal services: web, email, calendar, DNS, filesharing, SCM, bug tracking, networking (LAN, multiple WAN connections, firewall/gateway, PBX).
    • Installed new internal services: virtualization, monitoring/alerting, networked backups.
    • Wrote Django catalog tool for generating Nagios, Bacula and djbdns config files.
  • Mar 2005 — Jul 2007: Python Developer at Stroz Friedberg, New York, NY
    • Created new corporate intranet and evidence tracking system with Django and Plone.
    • Managed staging and production Linux systems for that application.
    • Supported forensics lab via scripting and other automation tasks.
  • Jul 2004 — Mar 2005: Interface Engineer at IconNicholson, New York, NY
    • Implemented design mockups as XHTML/CSS/JS webpages.

Education

  • 2004: B.S. in Computer Science at the University of Massachusetts, Amherst, MA

Hobbies/Interests

In no particular order: cats, chiptunes, trains, astronomy, martial arts, key lime pie, Iron Maiden.