- Builder of internet-enabled community software for ten years.
- Senior software developer on agile, cross-functional teams building whole products.
- Prototyper of full-stack web and mobile applications.
Contract programmer, Simpleform LLC (May 2011-June 2011)
- Improved compatibility of MLKSHK's API with the current specification of OAuth 2.
- Redesigned MLKSHK's API reference documentation, implementing an easier content management experience using Sphinx, the standard Python documentation tool.
- Improved reliability of automated tests by adapting the application to use Tornado's configuration system.
Principal investigator, leapf.org project (2010-present)
- Evolved a next-generation TypePad dashboard prototype into Leapfrog, a content-focused stream view using “deep” aggregation of multiple social content services.
- Worked with web APIs from Twitter, Flickr, TypePad, Vimeo, Tumblr and MLKSHK to integrate those content streams into the Leapfrog experience.
- Improved Leapfrog with end customer feedback collected through UserVoice.
Contract programmer, Convore Inc (Mar 2011–Apr 2011)
- Brought a prototype iPhone client for Convore's topical chat system to fighting weight on a short event-driven deadline using standard iOS platform tools.
Proprietor, Make A Face (2010-present)
- Devised a simple face-sharing application and rapidly prototyped it in Django and jQuery.
- Delivered the idea to market fast and cheaply by using the TypePad platform for cloud style photo hosting, social activity sharing, and account management.
- Collaborated closely with a professional designer to develop the visual appearance of the site, and implemented that design with the SASS stylesheet authoring language.
- Prototyped a mobile face-sharing experience without Flash in an HP webOS 1.4 application.
Six Apart, Ltd., San Francisco, CA (2004-2010)
Six Apart created the TypePad and Movable Type community publishing systems.
Software developer, TypePad Conversations (2010)
- Provided Django development and deployment expertise to support the launch of the company's leading conversational marketing product.
- Improved project planning and accountability by pushing carefully selected Scrum practices (the retrospective, point-based team velocity, and the burn-down chart).
- Participated in discussions to design a badge system to make learning and using TypePad more fun and “game-like.”
Software developer, TypePad Motion (2009-2010)
- Prototyped an API-backed community blog application with Django, refining it with a cross-functional team into the released product.
- Worked closely with the TypePad API team to develop a new REST JSON OAuth API meeting both the application's UX needs and the TypePad platform's performance requirements.
- Designed and wrote remoteobjects, a core library for rapidly building RESTful web service client libraries in Python.
- Reduced latency in Motion's client–server requests by co-writing a Python library for sending parallel HTTP requests in one batch request.
- Implemented continuous integration for TypePad API client and server components using a Python CI system, Buildbot, later migrating those tests to Hudson.
- Wrote developer documentation, including a house style guide for Python, developer's guides to running Motion with Apache/mod_wsgi and using TypePad's feed subscription API, and several developer blog posts.
- Accidentally contributed to a third-party rewrite of a Python OAuth library.
Software developer, Movable Type (2007-2008)
- Self-directed to design and develop Action Streams, a personal web profile “news feed” aggregator, later incorporated into Movable Type.
- Created a community-focused media microblog experience integrated with web activity and identity providers as part of the Movable Type Motion product.
- Improved performance and extensibility of the storage system by adapting code for “narrow table” storage from MT's sister product, TypePad.
- Implemented new web technology, including OpenID support for commenters and improved AtomPub API support.
Software developer, TypePad (2004-2007)
- Helped migrate customer data to a new database architecture—from a single PostgreSQL database to user-sharded MySQL partitions—by adapting the product's large stable code base to a next generation rewrite of its object relational mapper.
- Improved user experience by implementing TypePad's first rich text editor, integrating an open source RTE and extending it to meet product requirements for semantic HTML.
- Improved compatibility with a leading blog writing application, Windows Live Writer, by reverse engineering and implementing a competitor's XML-RPC API extensions.
- Helped teams scale up as the company grew from 9 to 100+ employees by deploying and maintaining blog and wiki communication tools on the company intranet.
- Developed an IRC bot to administer agile standup meetings for a distributed team using the Perl Bot::BasicBot system.
- Wrote and deployed an intranet search engine for logs of the company's private IRC channels, using Sphinx Search and MySQL.
- Implemented a tweet style social application for the intranet, with both new posts in Markdown and retweeting of public Twitter tweets by subscription, in Perl using Catalyst and internal “TypeCore” libraries.
- Improved ability of internal teams to exchange patches and data by deploying an internal code review tool, a pastebot style snippet sharing tool based on the open source DjangoSnippets.org, and bookmarklet-based link blogging.
- B.S., Computer Science, University of Tennessee at Chattanooga, 2003
- Python: Django, WSGI, nose, Buildbot, Sphinx documentation, Flask, Jinja, PyPI, pip, setuptools, Distribute, virtualenv virtual environments, generators, Twisted
- Mobile: iOS, iPhone, Cocoa Touch, HP webOS
- Perl: CPAN modules, DBI, Catalyst, Test::More, regular expressions
- Databases: SQL, MySQL, PostgreSQL, SQLite, CouchDB, Sphinx Search
- Process: agile, Scrum, git, Mercurial (hg), unit testing, automated testing, continuous integration (CI), Hudson
- UNIX, Linux, Mac OS X, C, Objective-C, C++