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.
- Implemented the following new support systems:
- 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