Biography

Generalist with broad and deep experience in all aspects of software design, software development, systems administration, process design, and management of functional teams.

Objective

Produce innovative and humane software tools that delight users.

Philosophy

User-centered design

Early years at Apple taught me to be fanatical about the quality of the end-user experience, from out-of-the-box through to the completion of the user’s ultimate task. I carry this sensibility into every facet of my work.

Source code as a creative process

Source code is a creative work whose proper audience is other human engineers. It should be readable, well documented, well factored, and reusable whenever possible. Object oriented paradigms are often preferable, but even when not available, attributes of the object-oriented model should still be retained: encapsulation, reusability, documentation both of interface and implementation. Pragmatism is important, but even ad-hoc code should be written with a maintenance path and reusability in mind. All tools and subroutines should be atomic, either succeeding completely or failing gracefully. Nothing should be written without an accompanying means to test it. Testing should usually be immediate. The simplest and most elegant solution is usually the best one, and is often the most difficult to achieve.

Data hygiene

Programs must preserve the integrity of data, increase its integrity whenever manipulating it, but also be flexible and secure when handling data of unknown integrity. On the input side, data should be checked against rigorous predetermined assumptions about its content, cleaned, defaulted, and/or rejected accordingly. On the output side, programs should avoid emitting data that does not match specifications. Flexible data models should be a priority, but inflexible ones must be honored. Just as people should, software programs should be liberal in what they accept and conservative in what they emit.

Giving back to the community

As an active member of the Open Source community, I believe in using open source tools and in contributing back to the open source movement. I am the creator of http://openxtras.org/ and contributor to the Comprehensive Perl Archive Network — (CPAN) the world’s largest repository of reusable open source modules.

Areas of Expertise

Desktop application development

12 years experience developing non-Web cross-platform applications for delivery on the desktop for Macintosh (12 years) and Windows (9 years). Experience includes: requirements analysis, specification, software design, packaging design, development, specification writing, bill of materials planning, installation design and engineering, mastering and replication, configuration management, build system automation, coordination among diverse sub-teams including technical writing, quality control, sales, etc. Languages and environments include: C, C++, Director (Lingo), FileMaker.

Web application development

6 years experience in Web application development, including 3 years experience with mod_perl. Expert user of DBI interface to SQL services on Linux, especially mysql. Implemented own libraries of wrapper objects for SQL-based database queries. Developed several other general-purpose development and debugging modules. Developed a proprietary management interface for mysql SQL server which allows dynamic schema change propagation and data propagation among distributed groups of private development servers and public database servers while maintaining 100% uptime. Have developed 2 different Web application frameworks in Perl, but in recent years have preferred Embperl.

Perl programming

6 years experience with all aspects of Perl programming, including systems administration, business process automation, CGI and related methods, mod_perl, Embperl, object-oriented development, documentation techniques. CPAN contributor. Regularly attend annual Perl / Open Source conference.

Unix system administration

6 years experience in Unix system administration. For 2 years, ran a company of 30 employees in 8 locations with over 20 Unix servers. Unix systems were used for firewall, VPN, Web services (both Intranet and extranet — over 20 separate Web sites), e-mail (SMTP and POP), company-wide file sharing services, business process automation, and much more. Experienced in creating documented, secure, reproducible installation and setup procedures, and reproducible software and hardware configurations.

Network administration

6 years experience administering heterogeneous IP networks mixing Unix, Macintosh, and all variants of Windows. Knowledge of IP subnetting, routing, VPN, firewalling, NAT, DNS, and more. 2 years experience setting up and maintaining highly-available Web server installations in co-located data centers.

Interface design

12 years experience designing high-quality easy-to-use applications for non-technical users. Experienced with: feature design and naming, feasibility analysis, consistency, look and feel development and execution, dialog and interaction design, integrated help systems, shortcut and efficiency design, etc.

CD-ROM development

11 years experience developing titles for CD-ROM delivery. Including: CD-based installations, CD-based content delivery, and auto-play CD-only software titles.

Director/Lingo programming

8 years experience developing cross-platform Director-based applications, including extremely large and complex applications using custom Xtras (plug-ins) for both Mac and Windows. Have developed proprietary and open-source reusable tools to facilitate Director application development.

Documentation

5 years experience writing technical documentation for both technical and non-technical audiences, for both end-user and internal development team use. Experience managing and communicating with external technical writers. Experience proofreading, editing, and correcting technical documentation. Excellent written communication skills. Broad understanding of issues of style, level, tone, and vocabulary. Experience developing and working within style guides and documentation standards.

Supervising editorial content

2 years experience editing health/medical news articles. (450 1,000-word articles.) Hired, trained, supervised, and criticized both staff and freelance medical writers. Developed internal editing process and standards. Coordinated fact-checking procedures. Developed Web-based process automation software to manage intake and process the flow of news articles from writers to editors to corporate asset database to automated timed-release on public Web sites. Designed process for change tracking and updating.

Data analysis and design

6 years experience analyzing database design issues for clients and internal company needs. Have developed a series of proprietary perl modules, tools and techniques, for repeatable data migration, manipulation, transformation, and publication. Experienced with both batch and interactive modes of data retrieval and migration. Cleaning and regularizing data is a particular specialty.

Database publishing

10 years experience generating automated markup output from databases, including both RTF and HTML target languages.

Business process automation

4 years experience in developing Unix-based tools to automate business processes and reporting: Web- and email-delivered automated status reports; automated replication of data for offsite backups and process flow management; automated log file rotation, transfer, analysis, and reporting; automated invoice generation; and many other examples.

Management and teamwork

12 years experience working on large software development teams. 3 years experience managing outside contractors and tracking budgets, deliverables, and other aspects of performance against contracts. 4 years experience managing internal project teams involving diverse mixes of partner-level experts, employees, project employees, and freelancers. Experienced in hiring, firing, evaluating, and disciplining employees. Good team worker with excellent upward, downward, and lateral communications skills.

Running a business

6 years experience owning and running small businesses with 2-4 business partners. 2 years experience founding helping run an investment-based startup business with 30 employees. Familiar with business development and planning issues, budgeting, project needs analysis, client development, client communications, reading balance sheet, P/L statements, budget forecasts, cash flow management, and other accounting issues.

•

Employment History

If.Net   1999-2002   Principal
Currently operating a successful consulting business developing data-driven applications for Web and shrink-wrapped distribution.

InterNetwork News   1999-2001   Chief Technical Officer, Co-Founder
Co-founded investment-funded Internet / TV News company.
Operated all aspects of company for 2 years.
Designed and personally implemented all internal and external Web applications and process automation systems.
Supervised all print and Web editorial content.

Ignition   1997-1999   Managing Partner
If.Net, design studio Ignition merged to form Ignition, Inc.
With 3 other principals plus 3 employees, designed and executed many medium-to-large-scale Web and other projects for diverse corporate and non-profit clients.

If.Net   1995-1997   President, Senior Engineer
Founded and operated small Unix/Web projects company.

Times Mirror   1994-1995   Executive Producer, Times Mirror Multimedia
Hired as founding executive of new division.
Helped plan product line and content strategy.
Contracted, supervised outsourced CD-ROM development.

Macromedia   1992-1994   Senior Engineer, Director
Helped ship Director 3.1.3 maintenance release.
Wrote specification for Director 4.0.
Led conversion of source code from Pascal to C++.
Led port to PowerPC architecture.
Helped convert to single Mac/Win source base.
Shipped first ever Windows version of authoring tool.
Wrote specification for Director 5.0.

    1992   Engineer, MediaMaker
Shipped version 1.5 of desktop video-editing product.

Apple Computer   1991-1992   Lead Engineer, QuickTime Starter Kit
Designed and supervised all aspects of 4-application shrink-wrapped product offering.
Wrote MoviePlayer 1.0 and MovieConverter 1.0: first consumer digital video editing applications.

    1990-1991   Software Engineer, QuickTime 1.0 team
Sample code for developers; user interface.

    1988-1990   Research Engineer, Advanced Technology group
Photographic imaging; spatial data models; video; collaboration; hypertext.

Bachmann   1987   Software engineer
Developed hardware graphics driver for early GUI-based database modeling tool for SQL developers.
Created what may have been the first PostScript printer driver for an IBM PC-based application.

MIT Media Lab   1986   Teaching Assistant
As undergraduate, worked as paid teaching assistant for graduate-level C programming course.
Developed and graded problem sets.
Advised and evaluated students.
Delivered occasional lectures.

    1984-1988   Paid undergraduate researcher
Interactive video disc programming.
On-demand video delivery (IP/UHF hybrid solution).
Live news feed processing.
3D imaging.
Spatial data modeling; video texturizing of 3D models.

Technical Training


Perl   1997-2002   O’Reilly Open Source Conference
Attended conference in Perl and other open source tools 4 out of 5 years.

Macintosh   1991-2002   Apple WWDC
Attended week-long developer conference 9 out of 12 years.

    1991   Developer training
Completed courses in Macintosh GUI development and debugging tools.

Education


MIT   1984-1988   Bachelor’s Degree, EECS
Computer science / software engineering specialty.
Extensive course work in art, architecture, digital media.
Completed entire language sequences in French, German.
Undergraduate thesis completed at MIT Media Lab.

Awards & Honors


Personal   2002   Peninsula School Pie Baking Contest
Winner of the coveted designation “Where the judges went for seconds” for cherry, key lime, and pecan entries.

Professional   2001-2002   Polly Bond Communications Award
Two-time winner. Projects were developed for the Episcopal Church Pension Fund.

MIT   1988   Undergraduate Thesis Competition
Department of Electrical Engineering.
Third place (Honorable Mention).

    1987   McCormack Award
For Excellence in Undergraduate Research.

    1986   Council for Library and Information Resources
Research grant for further work on interactive delivery of digitized visual resources using IP/UHF.

Personal Interests

  • multimedia and advanced interfaces
  • publishing and typography
  • musical typesetting
  • video and audio
  • visual design
  • art history
  • education
  • singing
  • literature
  • ceramic arts
  • world politics
  • traditional folk arts
  • languages and linguistics
  • spoken and written French and German

•

Projects

Click the hyperlinked company names in the Employment history above or visit my Projects page for a diary of selected past projects. Also on the Projects page, you’ll find a tour of my active Open Source projects including complete source code and documentation.