Skip to content. | Skip to navigation

Personal tools
Login
Sections

Work Experience Threads

Perspective on each of the types of duties that are woven through my work history

Overview

Contents

I have been doing professional software-development work since 1985, starting with application engineering and systems support for a few divisions of a government laboratory, NIST, progressing to network application research and development at an Internet research laboratory, CNRI, a small open-source based web applications company, Zope Corp., and recently, independent web applications consulting.

My technical career has involved application development often accompanied by systems operations and maintenance - I often developed tools which I would use, along with others, for practical purposes. Many of those facilities were instrumental for effective community coordination and collaboration - including being useful for the development efforts, themselves, "eating our own dogfood".

Here are overviews of my main work threads, with links to relevant sections of my CV - which see for the comprehensive story.

Software Development and Integration

I am a seasoned software developer with extensive web and standalone application and systems analysis, design, and development experience and skill. I have experience designing, implementing, and supervising the evolution of widely used facilities.

Some of the facilities for which I was the or a key developer have been useful for many people in lasting ways. Examples include GNU mailman, many tools for the Zope Corp and community development collaboration infrastructure, and the software sharing Depot. I also have contributed extensions which have become part of GNU Emacs, including Allout. These are in addition to the infrastructure, research, and client work mentioned throughout my CV.

I've been involved in a broad spectrum of successful development collaborations, from solo and small-team efforts in customer and research projects to being a developer in and managing coordination of customer and internal development teams, to core and peripheral involvement in global open source development efforts.

That experience has entailed substantial involvement in web and standalone applications research, development, and operations, working solo and in a broad spectrum of successful collaborations. I've been responsible for the full range of the development cycle, from requirements analysis and project formulation to implementation, integration, management, maintenance, and ongoing evolution; participating as project member and leader using various development styles, including agile and classic processes.

Community Online Coordination

Without clear, constructive, and organized communication tools and practices, the benefits of online communications can be lost in overwhelming quantity. Over the course of my career, I have been helped to facilitate collaboration, in technical communities and also among artists, with personal participation as well as by the widely-used tools. Fostering useful and constructive community collaboration is a central purpose driving much of my development efforts and my community participation.

Many of the duties and the facilities I developed have been instrumental for effective community coordination and collaboration - including being useful for the development efforts, themselves, "eating our own dogfood". I typically have been centrally responsible for supervising the communities for which I built the tools, including launching and running python.org and the PSA while at CNRI, managing the internal and community collaboration processes while at Zope Corp, and acting as the coordinator and manager of systems support for the NIST AMRF.

My involvement using those tools as part of the communities, and tending to the coordination of those communities, deeply informs my work on the tools. In turn, Communications skills that I've developed throughout the breadth of my involvements, including written and personal collaboration as well as crisp and clear technical writing, are crucial elements that I bring to any work.

Platform Specialties - Python, Zope/Plone, Linux

I have been involved in many aspects of application and web programming, including process and network programming; GUI and web user interfaces; encryption, text processing, and much more. Much has been based in dynamic high level languages, particularly Python, and Python-based platforms - I was a key Mailman developer, I contributed to the core implementation of Zope and the Zope CMF, I devised some fundamental Zope and Plone debugging techniques, and contributed some fundamental Python facilities, including designing and prototyping the Python hierarchical package facility. I implemented several central Zope applications, including many of those used at the time by Zope Corp. for collaboration with their customers and community.

Building substantial web applications also involved extensive web technology expertise, including deep use of HTML, CSS, javascript and DOM manipulation, structured text and advanced templates, AJAX, ATOM/RSS, as well as fundamental systems programming like systems internals, inter-process and network communications, and so on.

Systems Management and Operations

My technical career has involved application development often accompanied by systems operations and maintenance, often applying my coding skills to develop pragmatic tools which I would be using, on-the-ground. Early on, my time was dedicated to systems support, and I have since continued substantial systems maintenance in connection with the applications and facilities I developed and maintained. I have extensive experience with management of clusters of Unix-like systems, including many flavors of Linux, SunOS/Solaris, and some MacOS, for research laboratories, development facilities, and consulting clients. I also have deep experience crafting systems management tools, complete backup applications, operations sentinels, and other applications using Unix "tiny languages", together with Python and systems languages.

 

Contact Improvisation

My practice of Contact Improvisation and other movement improv provides a moving counterpoint to software development work. In addition to communities of systems developers to which I belong, the CI community is a big focus of my efforts to support grass-roots community coordination and collaboration, specifically in the DC Contact Improv community and the East Coast Jam. I design, develop, and maintain both of those online facilities, as well as being a central organizer of and participant in the communities they support. I have also taught many workshops and extended classes for broad ranges of people, and contributed to the organization of international CI events, like developing and maintaining the CI 36 Satellite Events site.  Since 2008 I have explored the intersection of movement improvisation, choreography, and theater with the Nancy Havlik Dance Performance Group.

I write about my general interest in Contact Improvisation here.

Document Actions