Christopher Armstrong

Programmer

210 Highland Ave, Unit 1
Somerville, MA 02143
radix@twistedmatrix.com - +1 617 913 7416

Objectives
I have a few goals with respect to programming.
  1. Collaborate with other developers to revolutionize communication technology
  2. Make computing efficient and enjoyable
  3. Master programming
  4. Entertain
The first two of these goals require fundamental changes in our computing platforms. This is why I'm mostly interested in framework programming, and why I'm a developer for the Twisted project. I'm also involved in virtual world simulation projects and interested in language and operating system design.
Current
Canonical Ltd March, 2006 - present

Software Development

I work with a team of developers on Landscape, a system for managing deployments of multiple Ubuntu machines. Technologies utilized are Python, Zope3, Twisted, and Postgres.

Twisted Matrix Laboratories January, 2001 - present

Release Management and Software Development (volunteer)

I work with a team of developers on Twisted, an Open Source networking infrastructure.

  • Collaborate with the team to design, implement, and integrate many parts of the Twisted system, including a web application server, a chat service, a remote-object protocol, an online world simulation framework, and an administration interface.
  • Manage releases of the software: This includes testing, developing packaging automation tools, and deploying the software on the main twistedmatrix.com server.


Experience
Nunatak Systems, Pty Ltd August, 2004 - February, 2006
Hobart, Tasmania, Australia

Software Development

Worked with a team of developers on the company's core product, a document management system for small to medium sized organizations. This product consists of a management UI written in PHP, a backend server written in Python utilizing Twisted and MySQL, and Zope/Plone Products for higher-level applications and customer-specific applications built on top of the document manager. I was involved in the maintenance of all parts of this system, and have done significant development on the Plone and Twisted-based code.

I was also the lead developer and maintainer of ConveyIT, a web application for facilitating easy electronic land conveyancing for Tasmanian solicitors and real estate agents. Initial development was carried out with a small team of 3-4 developers over 4 months, after which it was cut back to only myself unless major new developments were taking place. I also served as technical contact for the client, responding to support issues and implementing new features. Technologies utilized were Python, Twisted, Nevow, Atop, and OpenOffice.

Server Authority, Inc. November, 2003 - August, 2004

Software Development

Developed and maintained an anti-spam service with a small team. This involved protocol implementation, server infrastructure, and heuristics for deciding whether a given host is a spammer or not. Protocols involved were DNS and SIQ (Server Index Query). Technologies utilized were Python and Twisted.

Ypsilon.net AG November, 2003
Frankfurt, Germany

Training

Gave three full days of training to programmers at Ypsilon on the Twisted networking framework. Topics covered were protocol implementation, components, Deferreds, Twisted Cred, Perspective Broker, twisted.web, and XML-RPC.

Amy Thompson August, 2003 - October, 2003

Software Development

Implemented an automated test-running system to facilitate software testing at the Fresno County Office of Education. Technologies utilized were BuildBot and MaxQ, with improvements made to each.

Divmod August, 2003 - October, 2003

System Administration

Set up and maintained two servers running Debian GNU/Linux for the use of Divmod in the development, testing, and deployment of Quotient and other software. Maintained email servers (Exim), domain server (Twisted Names), CVS, Asterisk PBX, and various other services.

NASA STEP Testbed March 2003 - July 2003
Washington, DC

Software Development

Helped the team to design and implement the PanGalactic Engineering Framework. Integrated the repository (application logic and relational database) with various clients, including a Web UI and a GUI thick client. Technologies utilized were Python, PostgreSQL (relational database), Twisted's Woven (web framework), and wxPython (GUI toolkit).

Fresno County Office of Education December, 2002 - June, 2003

Software Development

Worked independently on a tool for validating digital coursework data files. The GUI tool ensures that files in a wide range of formats meet the quality standards of the Office of Education. Technologies utilized were Python, Twisted, and Tkinter.

Multimedia Institute September - December, 2002
Zagreb, Croatia

Software Development

Worked with a team of developers on an open source, component-based Content Management/Wiki System. Redesigned the initial version to utilize Twisted's web MVC framework, Woven.

NOVA Chemicals Corporation July, 2001 - August 2002
Pittsburgh, Pennsylvania

Web Development

Designed and maintained web sites for the company intranet and Internet, gave support to other Web Designers within NOVA, and explored enhancements to the navigability of existing web sites. Technologies utilized were HTML, Javascript, Python, and ColdFusion.


Publications

Getting Twisted - An article I wrote professionally for PyZine. It is a general introduction to implementing a protocol with Twisted. The article is available on the PyZine web site.

Releasing Large Python Projects - I gave a talk at PyCon 2003 about the Twisted release management process. The slides are available on my web site.


Minor Projects
  • I implemented two different Lisp-like languages: one compiler and one interpreter. The compiler was for an experimental syntax that attempted to bring some of the niceties of Python's syntax to the Lisp language. It compiled to Python bytecode. The interpreter was an experiment in restricted execution environments, and was written in Python.
  • I wrote a graphical mind-mapping application named Infogreater.
  • I have implemented various small demos of 2d and 3d games, with the ultimate and far-off goal of implementing a computer role playing game (single and multi-player).

Skills
Programming Languages
  • Python
  • Lisp
  • Passable PHP
  • Passable C
Operating Systems
  • Ubuntu Linux
  • Debian GNU/Linux
  • Windows NT, 2k, XP

Interests
I'm interested in virtual world simulations, WikiWikis, education, content management systems, programming languages, operating systems, the mechanics of abstraction, and debate. More information on these subjects is available on my website, http://radix.twistedmatrix.com/.