Code repository

Personal

  • pyparagraph, a Python implementation of Knuth-Plass line-breaking with PIL rendering.
  • Toy: The Trumpalizer, which is just a Markov-chain based random text generator that spews out pseudo-Trump, pseudo-Obama, and pseudo-Putin sayings.
  • This was our entry for the DC Python Dojo on 28 July 2016; you get an hour or so to tackle a problem.  This month's was to use the Meetup API and do something to estimate how many pizzas you need to buy for an upcoming meeting.  
  • Developed algorithm for seeding double-elimination tournament brackets fairly.

Open Source contributions

  • Contributed patches to kodi (formerly xbmc) media player to track which shows among your favorites you're actively watching, and suggest unwatched episodes of those in the "what to watch" area.
  • Contributed patches to Vim to support embedded Python extensions returning complex structures (lists/dicts, recursively nested) and to fix Python support when it broke with version changes.
  • Contributed patches to Vim to allow certain options more access to the sandbox if they are set securely (e.g. modelines and other document-centric options have lower permissions than options explicitly set by the user).
  • Contributed fixes to Gaim (now Pidgin), an instant messaging/chat client, to fix /tmp security race conditions
  • Minor debugging and community contributions to linux-kernel and Mozilla (now Firefox).

Work

  • Currently staff engineer for a large association management system for non-profit associations, a web application including membership database, e-commerce, mailing list management, geocoding and advocacy, fundraising, RESTful web services.  Development is primarily Python on Linux/Apache with a MySQL backend, plus copious Javascript and a lot of AWS services. Also a member of the security/compliance committee and developer for video chat and AI-based projects.   Matrix Group International, Arlington, VA 2004-present.
  • Developed full-text search and indexing software and text mining visualizations for patent searches.  Implementation in C and Python on Linux/Apache with Postgresql backend.  TextOre, Arlington, VA 2002-2003.
  • Wrote from scratch a TCP server to handle dynamic content (including geotargeted advertisements); implemented in C as a preforking TCP server with completely tokenized rules matching, which handled 900 ads/second in 1999 on legacy hardware. Also worked on Java-based user interface for content management and compiling rules to fast token-based matching system.  Motley Fool, Alexandria, VA 1999-2001.
  • Trained support and sales staff on encryption products, including F-Secure SSH and IRE/SafeNet hardware and software VPN technology.  Grupo Microsistemas S.A., Quito, Ecuador 1998.
  • Worked with and on LaTeX2HTML to put course papers online.  Perl on Linux and Solaris systems. Carnegie Mellon University, Pittsburgh, PA. 1997.