Matt Chisholm matt-r@theory.org http://glyphobet.net/resume.html Objective: I am not currently seeking employment. Skills: Languages: Fluent in: * Python 2.1-2.7 & 3.0-3.4 (Werkzeug, Flask, Pylons, TurboGears 2, SQLAlchemy, mongoengine, Routes, Paste, Genshi, Jinja2, Mako, formencode, CleverCSS, PIL, SVGFig, PyX, psycopg, psyco, cProfile, nltk, PLY, iCalendar, nosetest, fonttools, roboFab, virtualenv, easy_install/PyPi/eggs, pygtk, wxPython, py2exe, lamson) * JavaScript (ECMAScript & MS JScript, W3C & IE DOM, XMLHTTPRequest ("AJAX")) * jQuery 1.3-1.5 (jQuery-ui, validate, autocomplete, qUnit, hint, flot, and onfontresize plugins, template.js) * Angular.js 1.0-1.2 * regular expressions (Perl, Python and POSIX) * SQL * Bash shell * Makefile Rusty (from lack of recent use): * Perl 5 (CGI, DBM, PerlOO, PerlGTK) * C & C++ * TEX & LATEX * PHP 5.0 * AppleScript * XSLT 1.0 Basic familiarity with: * ObjectiveC and Xcode 4 * Ruby 1.8, Rails 2.0, Sinatra * Lisp (emacs & Common Lisp) * XSLT 2.0 * Java 1.6/6 * BASIC * Backbone.js Formats: * HTML 5, (D)HTML 4.01/XHTML 1.0, CSS 1 & 2 * SVG 1.1 * HTML API * YAML 1.1 * iCalendar/vCalendar/vObject * RSS 1 & 2 * Atom * VRML '97 * GNU Gettext .po files * bencode * JSON (& JSONP) Software: * Development: Git, Mercurial, Bazaar, Codeville, Subversion, Virtualbox, VMWare 4, 5 & 6, TextMate, SublimeText 2 & 3, Emacs, various GNU utilities * Database: MongoDB 1.8, Postgresql 7—9, SQLite 3 & MySQL 4 & 5 * Internet: nginx, Apache 2, lighttpd, RabbitMQ, Firefox/Mozilla, Safari/WebKit 1, 2 & 3, Konqueror, Internet Explorer 5, 5.5, 6, & 7, Google Maps API, Flickr API, ssh, BitTorrent (protocol & mainline client) * Graphics: GIMP, Inkscape, Fontforge, Google SketchUp Operating systems: * MacOS (6.x-9.x, OS X 10.2-10.10) * Linux (kernel 2.0-2.6) * Debian 2.0-3.1, Debian package system & format * Ubuntu 4.10-10.04 * generic UNIX/POSIX systems Experience: October 2012 - March 2015 Co-founder, CTO, and later Chief Architect at GoodsCloud.com, now NewStore.com. GoodsCloud is an e-commerce tool that facilitates cross-organization and flexible processes such as drop-shipping, merging on- and offline shopping, mobile shopping, and many other processes. * Initial requirements gathering and customer development with business process experts * Database design and implmentation in PostgreSQL * Application architecture design; REST-ful API in Python on Linux, JavaScript/ Angular.js front-end * Enterprise Service Bus and Service-Oriented Architecture using RabbitMQ * Grew the team from one to nine programmers, ranging from novice to expert * Worked with the team and with business to develop coding, deployment, QA and planning guidelines and processes September 2011 - October 2012 Head of Web Development Team, txtr.com GmbH. txtr provides B2B electronic book software. * Took over management of a team of Python developers, including: o interviewing and hiring two new developers o re-integrating two developers from another project back into the team o overseeing transfer of institutional knowledge from departing developers * Took over management of a legacy Jython & Django web application, including: o adapting to changing business requirements and implementing new features o developing and implementing a comprehensive plan for progressive improvements to the codebase o upgrades to core libraries o performance auditing and significant improvements o complete site redesign o merging two production forks of the codebase o repairing problematic test suite o migrating off of Jython to cPython Director: Florin Duriou, VP of Engineering April 2010 - October 2010 Lead Software Engineer, Digg.com, Inc. Digg is a place for people to discover and share content on the web. * Digg Ad Server: responsible for design and implementation of: o Rich web application (jQuery & HTML 5) for managing campaign, ad, and billing information o SQL schema for managing campaign, ad, and billing information o Reporting interface to display ad traffic and accounting numbers using HTML o Pylons application for serving advertisements on Digg.com o Integration with preexisting LDAP, Zookeeper, Hadoop & Cassandra services Director: Anton Kast, VP of Research August 2008 - November 2009 Lead Developer, Sycle LLC. Sycle was a small software company providing medical practice management software to the hearing aid industry. * Database migration and integration project: o pulled data from several different legacy corporate databases and datastores o understood legacy insurance industry business logic o designed modern, normalized schema and ORM implementation o reverse-engineered and enforced primary, unique and foreign keys * Pure static user interface for corporate insurance billing users ("pure static" means SSIs were the only server-side HTML generation tool available): o implement RIA interaction using jQuery o design ORM-like XML API to read and write complex objects on the server over XMLHTTPRequest o complex UI widgets generated from templates using JavaScript o layout using adapted version of the 960 Grid System and CleverCSS o automatic application configuration based on host and path name o ensure IE 7+, Gecko & WebKit compatibility * Bringing existing team in line with best practices: o don't repeat yourself (DRY) programming o model-view-controller (MVC) architecture o create/read/update/delete (CRUD) architecture o distributed version control o normalized database design o coding guidelines o user-interface implementation patterns o web application deployment August 2003 - September 2005, May 2006 - April 2008 Co-Founder and Lead Developer, Mo-Tsuki, LLC, San Francisco Duties included: * Design: o co-conception and design of social event-sharing "Web 2.0" application o worked closely with 3-4 person team o studied on-line communities with an eye to encouraging a trustworthy, high- quality/signal, low-noise/abuse, and comfortable user experience o developed strategies for how to share permissioned data in a multi-user environment * Implementation: o complex DHTML and JavaScript interface including various AJAX functionality o natural-language time and date parser, in Python o modular templating layer using XSL (libxslt) transforms on XML to generate DHTML, CSS, JavaScript, RSS, and iCalendar o design of application services in Python and interface with a back-end Postgresql database o account creation, verification, and management system o creation and maintenance of unit and end-to-end test suites o auditing application for security holes * responding to bug reports and user feedback from the project's small but devoted user-base See http://mosuki.com/ (defunct) October 2004 - May 2006 Co-lead Developer and User-Interface Lead, BitTorrent Inc., San Francisco Duties included: * worked closely with a 3-6 person team of programmers * improvements to BitTorrent 4.0, 4.2, 4.4: o complete interface redesign to bring BitTorrent up to par with competing clients o complete interface reimplementation in GTK o robust auto-update system capable of detecting, downloading, and installing new versions of the program across three different operating systems o i18N of interface strings * full re-design and re-implementation cycle for BitTorrent 4.20 - 5.0 releases: o collaborating with back-end developers on application-wide restructuring to add many features and fix long-standing, deep design flaws o collaborating with graphic designers on second interface redesign o complete interface reimplementation in wxWidgets o RSS feed and plug-in infrastructure (project canceled) * managing ~40 releases of new versions of the client, ~30 through auto-update system * tracking, responding to, and fixing a large number of bug reports from BitTorrent's ~4 million user base * restructuring command-line interface and curses / headless interfaces for better usability and to accomodate new features * following on-line forums and blogs to keep abreast of what features BitTorrent users wanted * adding / removing settings and preferences, both explicit and implicit, to improve user experience * managing l10n volunteers and paid team to localize interface into over 50 languages Director: Ross Cohen, CTO April 2003 - August 2003 Developer, Not Another Corporation, Inc., San Francisco Duties included: * Development on a standalone Python medical management application, to handle patient/ appointment/ doctor/ diagnosis/ prescription records, using wxWidgets (then wxWindows) and MySQL. * Development of a parser/syntax highlighter/indenter and emacs mode for PAL (Paradox Application Language, an archaic database access language). Director: Norman J. Harman, Lead Programmer April 2000 - September 2000, June 2001 - September 2001 Research Assistant to the Linguistics Department at UC Santa Cruz Duties included: * Analysis of linguistic data in Turkish, and improvements on a finite-state automaton meant to model Turkish morphology (word structure). * Maintenance and development on keCi, keCi+, and iCek, implementations of the FSA model of Turkish, written in Kernighan & Ritchie C. * Design of a course in programming to solve linguistic problems. Director: Jorge Hankamer, Professor of Linguistics and Dean of Humanities June 1999 - October 1999 Lead Developer on the Form-It project, AtreNet web solutions, Santa Cruz Duties included: * Managing a team of two programmers and two web designers working on the project. * Design and implementation of a Perl CGI with the following features: o Generate and execute Perl code to process a submitted HTML form. o Receive data submitted from HTML forms, report the data and perform statistical analysis on it. o Manage a SQL database of registered users, forms, and individual submissions. o Generate arbitrary HTML based on configuration files. Director: Tushar Atre, CEO June 1998 - April 2000 Developer and System Administrator, CATS Instructional Computing, UC Santa Cruz Duties included: * General IRIX web-server and SMB/Samba file-server maintenance and upkeep. * Development and documentation of a Perl/CGI program to allow users to schedule time on multiple computers in a computer lab. * Development and documentation of a Perl/CGI Placement Exam for the Spanish Department. * Writing tutorial web pages for UCSC faculty for various commercial software. * Small Perl and/or JavaScript solutions for course web pages. * Working with a team of students to support the faculty lab users. Director: Robin Ove, FITC Director Volunteer Experience * December 1999 - Present Contributor to Theory.org, an art and science web collective. http:// www.theory.org * May 1998 - August 2000 Co-sysadmin on the Porter Student Webserver, a student-maintained RedHat Linux webserver hosting student art projects. http://www.porter.ucsc.edu/ (now defunct) * September 1997 - June 2000 Online Editor & Production Manager at The Fish Rap Live!, an independent, student-run print newspaper published bi-weekly at UC Santa Cruz. http:// www.fishraplive.com/ (now defunct) Education: * June 2002 Master's_Degree in Linguistics,_University_of_California_at_Santa_Cruz. See: http://www.theory.org/~matt/dpe_tree/html/ * June 2000 Bachelor's Degree in Pure Mathematics, with Honors in the Major, University of California at Santa Cruz. See: http://www.theory.org/geotopo/3-sphere/html/ Independent projects: Selected independent projects: * Fragments • http://glyphobet.github.com/fragments/ A tool to use concepts from version control to replace many uses of templating languages. Author: Matt Chisholm * Mathematician's dice • http://glyphobet.net/store/dice Novelty dice made with the six most important numbers in mathematics. What began as a Kickstarter_project became a full-time job for part of 2011. Inventor: Matt Chisholm * PottyMouth • http://glyphobet.net/pottymouth/ A tool to transform completely unstructured and untrusted text to valid, nice-looking, completely safe XHTML. Author: Matt Chisholm * FlakeNot • http://flakenot.com A web and email application that keeps track of events on your calendar. Authors: Matt Chisholm & Ross Cohen * The Neighborhood Project • http://hood.theory.org/ A map of city neighborhoods based on the collective opinions of internet users. Authors: Matt Chisholm & Ross Cohen * Codeville • http://codeville.org/ (now defunct) A distributed, next-generation version control system that allows for very easy branching and merging. (Begun in 2004; Predated Git, Mercurial, & Bazaar) Author: Ross Cohen * Alphabet Soup • http://www.theory.org/artprojects/alphabetsoup/main.html A Python and python-imaging based art project exploring the boundaries of typography. Now bundled as a plug-in with the Inkscape drawing program. Author: Matt Chisholm You can see various other projects and contributions on BitBucket, GitHub, and Launchpad. Interests: * Programming interests: typography & fonts, user-interface design, vector graphics, theming, geocoding, linguistics, artificial intelligence, file- system design, mathematics, dynamical systems and chaos theory, on-line communities, peer-to-peer systems. * I would like to learn: Node.js, Mongrel2, Redis, D, OCaml, PostScript and ProLog. * Other Interests: typography, writing, photography, travel, graphic design, architecture & design, geography, physics. References: References will be provided upon request. Last updated Sunday, July 17th, 2011