Ian Bicking

1535 W. Leland Ave.
Chicago, IL 60640
(773) 275-7241 (no recruiter calls, please)

Note: I am not currently looking for a job. I am really not looking for a job. If you don't know me and I don't know you, then there is a 99.9% chance that I'm not interested in any job positions you have. Save us both some time.



None. I'm cool with what I'm doing right now.


August 2006 - present. Senior Developer, The Open Planning Project, New York.

November 2003 - July 2006. Senior Programmer, Imaginary Landscape Web Design, Chicago IL.

Reporting directly to the company partners, my duties and initiatives have included the following:

  • Produce and deploy applications for a variety of customers.
  • Responsible for design, implementation, and continued enhancement of an in-house content management system.
  • Develop, maintain, and resolve bugs for serveral core projects.
  • Responsible for the maintenance of several legacy projects. Provide advice and guidance about the future direction of these projects and their continued maintenance and evolution.
  • Initiate and provided guidance in the use of company-wide source versioning control and bug tracking system.
  • Performing code review of other programmers' work.
  • Proofread project proposals for technical consistency and feasibility.
  • Write and edit specifications and requirements.
  • Provide time estimates for projects and potential functionality tradeoffs.
  • Evaluate software products and development environments for company and client use.
  • Introduced new technologies, among them Paste, a Python web programming framework, and the adoption of Zope Page Templates. Transitioned the company from Zope to Webware to Paste WebKit.
  • Developed a new deployment system, including management techniques for supporting diverse dependencies in isolated environments.
  • Write documentation, both application code documentation and documentation on company-wide coding standards.
  • Database design, evolution, programming access abstraction, performance optimization and debugging, and installation maintenance. Primarily using PostgreSQL.
July 2000 - November 2003, Independent Consultant, Chicago IL
Working for a variety of clients on web development projects, both subcontracting and direct consulting. Typical jobs have included both design and implementation, starting from defining requirements and continuing through maintenance.

August 2000 - January 2002. Programmer, Fitzroy Dearborn Publishers, Chicago IL (In 2002 Fitzroy Dearborn was acquired by another publisher and dissolved)

  • Programmed and maintained extensive online collaboration system to receive comments from authors, advisers, and off-site staff on articles.
  • Administered intranet server which hosted above program, mailing lists, FTP sharing accounts, and a connection with the Windows NT server.
  • Redesign and restructuring of the editorial website.
October 2000 - January 2001, Programmer, Norphans.com, Chicago IL
Programming and web page design for online toy company, using PHP and MySQL.
November 1999 - April 2000, Distributed Support Services Consultant, Northwestern University, IL
Provided phone and on-site support for faculty and staff.
June-August 1999, Computer Instructor, Bloomington Public Schools, MN.
Designed and led a class in web design for students, grades 5-8. Led adult volunteers. Supervised computer use in after-school program.

Open Source Projects

I've authored many open source projects:


Projects I've made major contributions to:

Work products

Major products and projects implemented at Imaginary Landscape:


"Creating pluggable applications with Eggs. Given at PyCon 2006.

"All about web programming (except programming)". Given at PyCon 2006.
This describes the development process we have created at Imaginary Landscape.
"WSGI Middleware and WSGIKit" (WSGIKit was later renamed as Python Paste). Given at PyCon 2005.
It describes the pattern of using WSGI to build a framework. Written much later, A Do-It-Yourself Framework covers some of the same ideas, but in a more concrete manner.
"The Web Framework Shootout". Given at PyCon 2004.
The paper compared several Python web frameworks.

Lightning talks

"SQL-API", from PyCon 2006.

"A Conservative Metaclass" from PyCon 2005.
Also a blog post.

"PyLogo: the Logo Language implemented in Python", from PyCon 2004.

"Dealing with stale code in long-running processes", from PyCon 2004.
I'm not the original author of the idea (Jason Hildebrandt did that), but the technique did spread from Paste to CherryPy, TurboGears, and Django.

Presentations given to ChiPy

ChiPy is the Chicago Python user's group. Although I've given more presentations than listed here, these have slides available on the web:

"Testing with py.test".
py.test is an alternative test framework to unittest in the standard library.

"Python Packaging with Setuptools".

"SQLObject and Database Programming in Python".


Earlham College, Richmond IN, 1995-1998