Work History

Innovation Specialist @ 18F (General Services Administration)

eRegs Notice & Comment: A pilot project for accepting comments on regulations, written with Python, Django, Backbone, Postgres, ElasticSearch, & Cloud Foundry

ATF eRegs: An instance of eRegs for ATF regulations, written with Python, Django, Backbone, Postgres, ElasticSearch, & Cloud Foundry

api.data.gov: Proxy layer for APIs, providing rate limiting, caching, etc., ~300 daily users, written in NodeJS, Lua, and Rails

Communicart: Federal approval tracking, ~100 daily users, written in Rails

  • Despite starting with limited Rails experience, contributed many new features and refactors
  • Researched and implemented libraries such as pundit (authorization) and paperclip (attachments) to bring new features with minimal effort
  • Refactored the white-labelled application from ubiquitous switch-cases to implicit path selection (e.g. via dynamic dispatch)
  • Fostered a software engineering mentality within the team by discouraging special cases and limiting code complexity
  • Served as interviewer for several usability studies with many of our users

Peace Corps Donations: Donation collection app, ~1000 daily users written in Python, Django, and SASS

  • Successfully replaced an existing, ColdFusion under-the-desk server with a fault-tolerant, Django-based, EC2 environment
  • Led backend development among a team of varying size ranging from four to eight
  • Implemented callbacks and hand-offs with the pay.gov payment processor
  • Helped navigate a waterfall-driven client, agile developers, and a user-driven research team through to a project launch
  • Contributed to upstream projects, adding needed features and Python3 support
  • Focused on user security, GPG-encrypting data at rest and deleting it as quickly as possible
  • Tweaked our Cloud Formation setup based on feedback from load tests
  • Reviewed and sought review from my peers via pull requests. All changes were seen by multiple pairs of eyes
  • Project released to support President and First Lady Obama’s Let Girls Learn initiative

Culture and Organization: Making 18F a better place

  • Helped found 18F’s Chicago office, which has grown from one to a half dozen people in less than a year
  • Interviewed numerous candidates for technical work in the federal government, as well as participated in phone screens and resume reviews
  • Wrote blog post (seen as “the coolest work ever”) describing many of the decisions and trade-offs made when releasing an app
  • Assisted developers from CFPB and FEC in running the eRegulations parser on their regulations
  • Contributed code reviews, technical architecture dialogues, sample interview challenges, etc. to my colleagues
  • Co-led the Code Reviews working group

Backend Developer @ Consumer Financial Protection Bureau

Mapusaurus: Open source map software to detect red-lining concerns written with Python, GeoDjango, Leaflet, PostGIS, & CentOS

  • Worked on a capital-Agile team: three devs, two designers, product owner, and scrum master using two-week sprints
  • Parsed and loaded decennial census tract shapes, population metrics, and HMDA loan applications into Postgres/GIS
  • Using an API-first approach, pre-rendered shares as GeoJSON and separated statistic and shape endpoints
  • Served data via a Leaflet-driven UI; data loaded as needed to allow for infinite exploration without high load times
  • Configured and maintained demo server, integrating with Jenkins for continuous deployment and Travis for testing

eRegs: An open source regulation parser/display, ~500 daily users written with Python, Django, Backbone, MySql, Solr, & CentOS

  • Served with a brilliant team (4 devs, 2 design, product owner, PM) in 2-week sprints, with two major rollouts
  • Led the bureau in best practices: code commits, reviews, coverage, tests, PEP8 standards, and UI testing (Sauce Labs)
  • Co-wrote a Python parser for regulations (plaintext + XML) with lxml, PyParsing, python-constraint, and inflection
  • Derived hierarchical structure from a stream of paragraph markers using constraint programming & limited heuristics
  • Discovered citations (including implicit context) and definitions (including scope) via parser combinators & regexes
  • Automated regulation compilation (from final rules) by tokenizing, normalizing, and processing amendment texts
  • Created multiple output options for these regulation trees, including an API, the file system, and even a git repository
  • Designed and later migrating a data storage API from Flask + Elastic Search to Django + Haystack, MySql, and Solr
  • Helped develop a Django+Backbone-based regulation viewer, heralded as “user-friendly” and “magnificent
  • Cited by the White House in the “Second Open Government National Action Plan”, December 5, 2013
  • Using cachegrind & jmeter, optimized many segments of a quite-intensive rendering pipeline to minimize load times
  • Configured and maintained demo and continuous-build environments as well as Travis-based automated test scripts
  • Shared code via pull requests (Github); code built using pip, virtualenv, buildout, node.js, and django-south

HMDApolis: A game to explore HMDA data written with Python, Flask, Backbone, Postgres, & CentOS

  • Designed & implemented a board-game style webapp with two front-end devs and a designer over a weekend
  • Stored and served HMDA data (>50 million records) utilizing carefully tweaked Postgres indices
  • Configured and maintained demo server, a particular challenge given the amount of data we queried

Idea Box: An open-source Django app for sharing and voting on ideas written with Python, Django, MySql, Solr, & CentOS

  • Designed & implemented an Idea Scale-like platform for Django on a team of 3 devs and 2 designers in two weeks
  • Utilized Solr’s more-like-this API and stop-word configuration to reduce the number of duplicate submissions
  • Our code was eventually picked up for a bureau-wide rollout of the application, saving a great deal of money

Better Government: One step at a time

  • Co-chair of the Transparency & Communications working group, writing the first CFPB technical blog post (Jekyll)
  • Heavily involved in the Open Source working group; reviewed projects for release and became CFPB’s top committer
  • Participated in release/change management meetings, “business capability” discussions, etc. to help steer our efforts
  • Maintained an internal Prose.io instance to make contributing to our enterprise Github easier for non-tech folks
  • Championed pull-request code reviews; copious, automated tests; license attribution; and rapid, public deployments
  • Internal technical presentations on TastyPie, security, parsing, static site generators, and tech-centric project proposals
  • Worked remotely, visiting D.C. once a quarter; kept in contact with my team via chat, phone, and occasional webex

Chief Developer @ Toodalu

Toodalu: A charity-driven rewards network, ~50 daily users written with Scala, Lift, Postgres, MongoDB, Solr, & Debian

  • Led the majority of technology decisions, such as application stacks, server security, and communication protocols
  • Navigated the code through many company pivots, from a Foursquare-like social network, to an airline points tool, to a dutch-auction Groupon-esque model, to a credit-card-tracking charity system, into a white-label rewards program
  • Designed & developed RESTful JSON web services (Scala + Lift) for user-, merchant-, sales- and admin-facing apps
  • Documented the API-first approach, which allowed our iPhone developer to work in parallel with webapp creation
  • Tested these endpoints via over 2000 Python-based integration tests as well as manual load testing
  • Developed web interfaces for these APIs, including customer (Google Maps + Lift + jQuery) & merchant (Flot) apps
  • Dived into many realms as needed, including a Swing-based, Windows app and the beginnings of an Android client
  • Emphasized user security: per-column auth encryption (BouncyCastle), password attempt exponential back-off, etc.
  • Stored API call logs (excluding sensitive information) in MongoDB, whose dynamic structure allowed easy querying
  • Created a Wordpress blog for easy content management, running Quercus for sharing Tomcat sessions with the app
  • Used Solr to provide instantaneous auto-completion/search across 1.5 million charities (to associate donations)
  • Utilized PostGIS to perform shape and position comparisons to determine which merchants were nearby to users
  • Integrated with GRS credit card payments via SOAP, SFTP, and embedded iframes to track swipes and give rewards
  • Pulled user contacts/relationships from social networks and contact lists, including Facebook, Twitter, and Gmail
  • Sent notifications to users via templated (Mustache) push messages (Urban Airship, Parse) and emails (YMLP)
  • Configured and maintained all associated servers (Rackspace) including binary/JAR hosting
  • Hosted code first on an internal subversion; migrated to Bitbucket (using git); over 2000 commits; apps build via SBT
  • Scripted routine tasks (e.g. key rotation), schema changes (scala-migrations), resizing photos (ImageMagick), etc.
  • Worked largely remotely, seeing the iPhone developer and administrative team roughly once per week
  • Stepped out just as Toodalu was acquired by Wildfire; our software would become the base for Spring Marketplace
  • Recognized as Chicago’s Startup of the Month; finalist, “Best Financial Services/Payment Startup” Moxie Award

Web Developer @ Network Ninja, Inc.

LegalServer: A webapp for pro bono attorneys, ~500 daily users written with OO-PHP, Protoype, Postgres, & Debian

  • With a team of four to six devs and a PM, added new features while improving existing code, pushing updates weekly
  • Personally contributed over 4000 commits to a shared Subversion repository, reviewed via weekly code checks
  • Implemented an automated, PHPUnit-based testing regime; wrote over 100 tests, preventing countless bugs
  • Used Postgres’ trigram and soundex modules to improve a system to find similar names (de-duplicating clients)
  • Developed scripts to automate application creation and deployment, saving time and reducing manual errors
  • Wrote a module to transmit statistics to the Department of Housing and Urban Development via a SOAP system
  • Rewrote module for sending mass, templated emails; recipients were selected via a flexible yet intuitive query engine
  • Modularized many components of the platform’s UI and models, allowing clients to customize it to fit their needs

Internal Tools: Admin and developer tools, ~10 daily users written with Python, Postgres, jQuery, Trac, Drupal, & Debian

  • Migrated operations from a custom ticketing solutions to Trac, greatly improving management efficiency and tracking
  • Researched, configured, extended, and wrote (where needed) plugins for Trac, contributing back useful pieces
  • Maintained the company’s Drupal-based community site, including a JSON end-point for our training/event calendar
  • Created an XML-RPC-based system for viewing tickets, sending feedback, and getting help for our client sites

Teaching Assistant @ Grinnell College CS Department

CSC105: A lab-driven CS course for non-majors with application, HTML, and Python components

  • Assisted the professor by answering students’ questions and helping them debug their programs/pages

CSC201: An early course for CS majors, focusing on Linux, C, and certain formal methods

  • Wrote and taught a two-period, hands-on tutorial about the ViM text editor
  • Wrote a tutorial describing SSH (and X-forwarding) for Windows users; this tutorial is still referenced

Application Developer @ Grinnell College IT Services

TCDB: A timekeeping & admin tool for student staff, ~30 daily users written with PHP, MySQL, CentOS, Debian

  • Extended tool via new features based directly on user feedback, such as an HTML scraper for employee images
  • Awarded ACM Award of Excellence in the “Computing Services Internal Website” category
  • Performed server maintenance & config, learning from an experienced Linux admin; assisted migration to Debian

Technology Consultant @ Grinnell College IT Services

  • Troubleshot, debugged, and resolved hardware and software issues for students and faculty over the phone & on-site
  • Special training for helpdesk-style support (including malware removal), Linux, and audio-visual equipment
  • Mentored and developed curriculum for additional generations of consultants, with an emphasis on the Linux labs
  • Awarded the Chad Zinn Outstanding Helpdesk Award

Summer of Code Intern @ Google, Inc.

Summer of Code: Each summer, Google pays college students to work on and be mentored by open source projects

  • Of 6,200 applications for the program, only 905 students were accepted; 7 worked on ViM, roughly a pair per goal

ViM: An open source text-editor of great note; Written in C, built with make, debugged using gdb

  • Worked remotely, in frequent communication with the project creator (Bram Moolenaar) and other students via email
  • Selected and resolved bugs, releasing over a dozen official patches, and contributing to several more; see “:help 7.0”