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 engineer since 2004.
  • Unix/Linux sysadmin since 2005.
  • Author and maintainer of multiple popular Python libraries, including but not limited to:
    • Fabric (fabfile.org), a task runner & SSH scripting library.
    • Fabric’s primary dependency, the SSH protocol implementation Paramiko (paramiko.org).
    • A modern successor to Fabric’s task management & subprocess feature set, Invoke (pyinvoke.org),
    • Alabaster (GitHub here), the default theme for the widely-used Sphinx documentation generator.
  • Contributor to a handful of other open source projects, notably Django and Graphite.
  • Member of the Python Software Foundation and the Open Source Initiative.
  • 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.

Skills

  • Programming languages:
    • Good at: Python, Unix shell
    • Hobbyist level: Rust, Clojure
    • Used to be okay at: HTML/CSS (plus template languages), JavaScript, Ruby
    • Exposure to: Java, Golang
  • Tools:
    • Cloud platforms: AWS, GCP
    • Configuration management: Chef, SaltStack, Nix, (some) Puppet
    • Data stores: (Postgre|My)SQL, Redis, MongoDB
    • Virtualization & containers: Docker/Podman, Xen
    • CI/CD: Jenkins, Circle-CI, Concourse, GitHub Actions
    • Secrets management: HashiCorp Vault, 1Password
    • HTTP: NginX, Apache
    • Monitoring & metrics: InfluxDB/Grafana, Graphite, Nagios, Collectd
    • Logging/events/indexing: ElasticSearch, Splunk, Rsyslog, Logstash

Employment

  • 2019 — 2023: Production Engineer at Jump Trading, LLC, New York, NY
    • Participated in oncall rotation covering a wide range of (Linux focused) technologies and scales, everything from low-latency networking and grid computing to traditional server/config management and internal services
    • Supported internal use of my OSS libraries and tools
    • Server build system improvements (validation, converting OMSA code to Redfish)
    • Package build systems (Python, RPM, etc) support, upgrades, migrations, replication
    • Django-based firmwide alerting system debugging, feature work, Django 1->3 upgrade
    • L2 network fabric validation tool
    • Compute grid node autoscaler framework
    • GitHub Enterprise feeding & care, including significant tooling development
  • 2016 — 2019: Senior Software Engineer at mLab, San Francisco, CA
    • Overhauled and expanded an internal Python/Fabric deployment and cloud orchestration system (which managed mLab’s fleet of 10,000+ cloud hosts and nearly 1 million database instances).
    • Created per-developer development environments based on existing prod stack, with secrets management and VPN functionality on top.
    • Built a Concourse container-based CI stack for those new environments.
    • Built a fully automated cloud image (eg AWS AMI) creation and management system to replace existing ad-hoc workflow.
    • Prototyped a custom Duo Security two-factor authentication frontend.
    • Assisted in production, IT and office premises security operations.
    • Various production service investigations and troubleshooting.
    • Partook in the production pager rotation.
  • 2012 — 2016: (Lead) Operations Engineer at Urban Airship, San Francisco, CA
    • Overhauled and/or augmented orchestration tooling (Fabric), configuration management (Chef), truth database (Clusto), operating system packages (Gear/Mock/RPM) and build/CI server (Jenkins).
    • Implemented a Graphite metrics stack (2.6MM metrics/min), with focus on clustering, reliable transport and dashboards.
    • Built an IRC chatbot providing access to many production tools (config management, build system, deploy queue, orchestration, oncall escalations & paging, etc).
    • Promoted an engineering-oriented documentation culture.
    • Partook in the production pager rotation.
  • 2011 — 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/parsing/indexing with Logstash and ElasticSearch.
    • Supported existing in-house deployment and configuration management systems, including custom Fabric development.
    • Troubleshot production environment.
  • 2007 — 2011: Systems Administrator/Developer at Digital Pulp, New York, NY
    • Developed customer 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, WAN connections, firewall/gateway, PBX).
    • Installed virtualization, monitoring and networked backup systems.
    • Wrote Django-based tool for generating Nagios, Bacula and djbdns configs.
  • 2005 — 2007: Python Developer at Stroz Friedberg, New York, NY
    • Created an 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.
  • 2004 — 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