Objective:
I am currently engaged and am not interested in hearing about potential positions.
To take a senior software design, interface design, and Python programming role, on a small, talented development team working on interesting and challenging projects, in the city of San Francisco.
Skills:
Languages:
Fluent in:
- Python 2.1-2.5 (pygtk, wxPython, PIL, Pylons, SQLAlchemy, Formencode, Routes, Paste, Mako, PyX, nltk, psycopg, MySQLdb, psyco, PLY, iCalendar, webunit, funkload, unittest, SQLObject, py2exe, fonttools, roboFab)
- XSLT 1.0
- regular expressions (Perl, Python and POSIX)
- JavaScript (ECMAScript & MS JScript, W3C & IE DOM, XMLHTTPRequest ("AJAX"))
- HTML 5, (D)HTML 4.01/XHTML 1.0, CSS 1 & 2
- SQL (Postgresql 7/8, SQLite 3 & MySQL)
- Perl 5 (CGI, DBM, PerlOO, PerlGTK)
Rusty: (from lack of use)
- shell scripting (bash, tcsh, csh)
- C & C++
- TEX & LATEX
- PHP 5.0
Familiar with:
- Lisp (emacs & Common Lisp)
- VRML
- Curses
- BASIC
- AppleScript
- JavaScript Prototypes
- XSLT 2.0
- Java 1.6/6
- Flash
Formats:
- iCalendar
- XML
- RSS 1 & 2
- OS X plist
- bencode
Software:
- Development: GNU utilities (gcc, readline, getopt, make, gettext, gdb, etc.), cvs, Subversion, Codeville, VMWare 4, 5 & 6, (x)Emacs, Virtualbox
- Internet: Apache 1 & 2, lighttpd, Firefox/Mozilla, Safari/WebKit 1, 2 & 3, Konqueror, Internet Explorer 5, 5.5, 6, & 7, Google Maps API, Flickr API, Facebook API, ssh, BitTorrent (protocol & mainline client)
- Desktop: Xorg/X-Windows, Gnome, GTK
- Graphics: GIMP, Inkscape (formerly Sodipodi), Sketch, Fontforge (formerly PfaEdit), Sawfish (including themes), Fontographer, Photoshop, PageMaker
- Computation: Mathematica, Maple
Operating systems:
- Linux (kernel 2.0-2.6)
- Debian 2.0-3.1, Debian package system & format
- Ubuntu 4.10-7.10
- MacOS (6.x-9.x, OS X 10.2-10.4)
- generic UNIX/POSIX
- Basic familiarity with:
- RedHat/RPM
- Mandrake 9.1
- OpenBSD
- SGI IRIX 6.2
Experience:
August 2003 - September 2005, May 2006 - Present
Co-Founder and Senior Developer, Mo-Tsuki, LLC, San FranciscoDuties included:
- Design:
- co-conception and design of social event-sharing "Web 2.0" application
- worked closely with 3-4 person team
- studied on-line communities with an eye to encouraging a trustworthy, high-quality/signal, low-noise/abuse, and comfortable user experience
- developed strategies for how to share permissioned data in a multi-user environment
- Implementation:
- complex DHTML and JavaScript interface including various "AJAX" functionality
- natural-language time and date parser, in Python
- modular templating layer using XSL (libxslt) transforms on XML to generate DHTML, CSS and JavaScript
- design of application services in Python and interface with a back-end Postgresql database
- account creation, verification, and management system
- creation and maintenance of unit and end-to-end test suites
- auditing application for security holes
- responding to bug reports and user feedback from the project's small but devoted user-base
October 2004 - May 2006
Developer and user-interface designer, BitTorrent Inc., San FranciscoDuties included:
- worked closely with a 3-6 person team of programmers
- improvements to BitTorrent 4.0, 4.2, 4.4:
- complete interface redesign to bring BitTorrent up to par with competing clients
- complete interface reimplementation in GTK
- robust auto-update system capable of detecting, downloading, and installing new versions of the program across three different operating systems
- i18N of interface strings
- full re-design and re-implementation cycle for BitTorrent 4.20 - 5.0 releases:
- collaborating with back-end developers on application-wide restructuring to add many features and fix long-standing, deep design flaws
- collaborating with graphic designers on second interface redesign
- complete interface reimplementation in wxWidgets
- 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
April 2003 - August 2003
Developer, Not Another Corporation, Inc., San FranciscoDuties 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).
April 2000 - September 2000, June 2001 - September 2001
Research Assistant to the Linguistics Department at UC Santa CruzDuties 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.
June 1999 - October 1999
Lead Developer on the Form-It project, AtreNet web solutions, Santa CruzDuties 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:
- Generate and execute Perl code to process a submitted HTML form.
- Receive data submitted from HTML forms, report the data and perform statistical analysis on it.
- Manage a SQL database of registered users, forms, and individual submissions.
- Generate arbitrary HTML based on configuration files.
- Generate and execute Perl code to process a submitted HTML form.
June 1998 - April 2000
System Administrator, CATS Instructional Computing, UC Santa CruzDuties 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.
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/
Selected independent projects:
Participated in the following independent open-source projects:
- Spydentify! • http://spydentify.com
A collaborative web game/communtity devoted to identifying images.
Author: Matt Chisholm - 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 - PottyMouth • http://devsuki.com/pottymouth/
A tool to transform completely unstructured and untrusted text to valid, nice-looking, completely safe XHTML.
Author: Matt Chisholm - Codeville • http://codeville.org/
A distributed next-generation version control system that allows for very easy branching and merging.
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.
Author: Matt Chisholm -
digest • http://www.theory.org/~matt/digest/
A Python and python-imaging program to generate HTML indexes and image previews for collections of images.
Author: Matt Chisholm -
namesort • http://www.theory.org/~matt/namesort/readme.html
A python program for organizing a very large number of files into subdirectories based on their names.
Author: Matt Chisholm -
SyNTeX • http://www.theory.org/~matt/syntex/syntex_manual/
A Perl preprocessor for LATEX to draw syntactic trees based on parenthesized strings.
Author: Matt Chisholm -
mpserv • http://www.theory.org/software/mpserv/
A distributed client-server mp3 music archive to manage a collection of mp3 spread across several machines on a local network, and to play the mp3s to a stereo.
Authors: Brian Martin, Jeremy Avnet, & Matt Chisholm -
bfe, pbfe, qfe, libquat and related projects • http://www.theory.org/software/
A suite of software tools written in C++ to visualize arbitrary dynamical systems in two, three and four dimensions.
Authors: Brian Martin & Jeremy Avnet
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: D, SVG, Lisp, Apollo, Ruby, OCaml, PostScript and ProLog.
- Other Interests: typography, writing, photography, travel, graphic design, architecture & design, geography, physics.