Talented technical communicator with over 25 years’ experience
writing documentation for developers.
- My background in software development
allows me to learn new technologies quickly
and to write
documentation, example programs, and tutorials
new programmers and seasoned developers.
- As the first person
outside of engineering
to use a product
the way customers do,
I provide valuable
insight into user experience
- My experience
in nearly every facet
of software development
allows me to work efficiently
with management, engineering, and marketing.
Sep 2015 — Feb 2016
Sr Documentation Engineer
DataRobot provides a platform to generate predictive models from complex datasets.
- Took over a stale documentation base
that hadn’t been updated in over six months.
Updated documentation, prioritizing new features
and backfilling updates of existing features.
- Wrote installation guide for on-premise deployment
of product during which I found several bugs
and race conditions in installation scripts.
- Created documentation build system
that allowed building of multiple drafts
for different branches and multiple authors.
- Provided Sphinx support for engineering teams
producing in-house documentation for their libraries.
Aug 2010 — Oct 2014
Sr Documentation Manager
As Joyent’s first dedicated technical writer,
I was responsible for all customer-facing documentation
for Joyent’s cloud products: Joyent Public Cloud,
Smart Data Center, and Joyent Manta.
I set up, deployed, and maintained all of the Joyent
Joyent Public Cloud
Joyent Public Cloud (JPC) lets customers create
virtual machines on Joyent’s infrastructure.
JPC has a web portal as well as an API interface.
- Consolidated information from outdated DokuWiki
site into a new Confluence-based wiki.
- Worked with product team to test and improve
cloud management portal, especially on-boarding flow.
- Maintained and added examples and explanations
for REST API using Restdown,
a tool that uses structured Markdown
to make attractive and useful
reference API reference pages.
- Wrote up technical descriptions and how-to guides
for reconfigured images such firewalls,
database servers, Elasticsearch servers,
and so on.
- Documented Role Based Access Control system
which is used in all Joyent products.
Smart Data Center
Smart Data Center (SDC) is the software that JPC uses
for cloud management.
SDC is now an open source project.
- Used Confluence to create initial documentation
for SDC 6.0 and SDC 6.5.
- For SDC 7.0 I migrated the documentation to
Kirby CMS, GitHub, and Markdown
to make it easier for engineering and
support to add or to make changes to
the documentation as the product was
- Wrote tools in node.js to
migrate the Confluence content to
- Taught customer support team
how to fork the documentation repository,
make changes, and send pull requests.
Manta is Joyent’s object storage and compute service.
- Wrote tutorial introduction to Manta
that introduced customers to basic concepts,
showed how to use the command-line interface,
and described how to run jobs.
- Wrote reference documentation for
Manta storage and
Sep 2009 — Aug 2010
Updated the Administrator Guide, Users Guide, and
Installation Guide for the new version of HP’s Email
Archiving software for Microsoft Exchange (EAsE).
The Administrator Guide is designed to
help the Exchange server administrator set up the best
strategy to archive email.
Apr 1996 — Nov 2008
Principal Technical Writer
During the 12 years that I worked in Cognex’s
Technical Publications department, the company evolved
and changed from a company that provided vision
software to support its hardware offerings to a company
that focused on software and low-cost sensors. As the
company’s products changed, so did its technical
I wrote API documentation for two major vision class
libraries. The libraries had C++, C#, and Visual Basic
interfaces. In addition to describing functionality, I wrote
sample code in all three languages. I also wrote many of the
tools that we used to generate the documentation in several
CVL (Cognex Vision Library) is a large C++ class library made
up of nearly 600 classes designed for OEM semiconductor
inspection applications. My work on this library included:
- Documenting most of the early classes for various vision tools,
image acquisition, and image display.
- Creating a tool to parse C++ header files to extract
function signatures and generate ready-to-use
- Designing the layout and FrameMaker templates for the
- Writing a tool to help discover instances where developers
had added new members to classes to make sure the
documentation was up to date.
VisionPro is Cognex’s flagship general purpose vision
software product. It provides both an interactive
development environment as well as a rich .NET-based
- I documented the API for most of the classes, and
created examples and code snippets for most of the methods.
- Wrote conceptual documentation and how-to guides
to help customers learn how to use and combine parts
of the library.
- VisionPro was originally a COM product. With other
members of the team, I wrote a set of tools that used
reflection to generate base documentation from COM-based
libraries. When VisionPro moved to the .NET architecture,
I wrote tools to generate a new .NET version of the
documentation and then keeping both the COM and .NET
versions in sync. (The COM version was eventually dropped.)
- The COM VisionPro documentation source existed as
a set of over 20,000 XML files. We wrote custom tools to
generate CHMs for the VisionPro documentation. For the
move to .NET, I adapted NDoc, an open source documentation
generator, to use our legacy XML files as well as
new C#-generated documentation XML files. We wrote tools
to generate HTML, CHM, and HxS versions of the documentation.
- I optimized our build process so that we were
able to build complete documentation sets
in under an hour instead of three or four hours.
In addition to working on documentation for Cognex’s
vision software class libraries, I also wrote and
maintained several tools used by both projects.
- I wrote an XML-based application to maintain release notes for
both VisionPro and CVL.
This application generated HTML for inclusion
in customer documentation and another version
for internal use.
The internal version
included links to the bug database, noted when a bug appeared and
when it was closed, and could be use to generate historical
versions of the release notes.
- I maintained a camera database that began as a simple table
and later became an XML-based file similar to the release notes
database. This became the single place where there was a
historical record of which cameras were supported in which
release of each software product. I taught myself MS Access and
SQL to reimplement this application as an Access database and
transferred responsibility of the database to engineering.
The marketing department used this database to
generate a list of compatible cameras on the Cognex web site.
Sep 1992 — Apr 1996
Designed and wrote documentation for several Macintosh software
companies. Most of these were short-term contracts.
- Metrowerks — Wrote cookbook for PowerPlant,
the Macintosh application framework included with
the CodeWarrior development environment.
- Bare Bones Software — Wrote printed documentation for BBEdit
and Apple Guide online help.
- Pacer Software Wrote documentation for Macintosh communications
- Component Software Wrote class library documentation
for an early object-oriented C++ development environment.
- BBN Wrote documentation for Internet server administration
application for a spinoff of BBN.
- Charles River Analytics Wrote end user manual for
a Macintosh intelligent assistant that observed user actions
and made suggestions for streamlining workflow.
Mar 1987 — Jun 1992
During this time, Symantec made the best-selling
development tools for Macintosh computers.
I contributed to virtually every area of software
development through four versions of THINK C, three versions of
THINK Pascal, and two versions of THINK Reference.
I held positions as Product Manager, Documentation Manager, Technical
Support Manager, Quality Assurance Manager, and Technical
Writer. I was usually in charge of at least two departments at
the same time.
- Mar 1990 — Jun 1992
- Responsible for all language products for the Macintosh: THINK
C, THINK Pascal, and THINK Reference.
- Wrote initial business plans that included product definition,
target customers, product positioning, and feature specification.
- Tracked development, set schedules, and made trade-offs to
ensure on-time delivery of the products.
- Coordinated with other groups (manufacturing, international,
marketing) so entire product team knew exactly where projects
stood at all times.
- Mar 1989 — Jun 1992
- Responsible for all aspects of documentation: planning,
scheduling, designing, and writing.
- Wrote first manual for the THINK Class Library, an
object-oriented application framework. This manual included a
highly praised introduction to object-oriented programming as
well as an easy-to-follow tutorial.
- Earlier, as a Technical Writer, solely responsible
for the THINK C and THINK Pascal manuals. Wrote
most of the tutorials (programs and text) used in
Technical Support Manager
- Oct 1990 — Nov 1991
- Managed three support engineers.
- Improved communication and cooperation among the support
engineers and kept them informed on various projects throughout
the division and the company.
- Shifted emphasis from call throughput to call quality and
reduced customer complaints by instituting guaranteed callbacks
by the end of the day.
- Integrated Zortech’s four technical support engineers during
the Zortech acquisition (9/91) into Symantec’s support
department. Trained new support manager.
Quality Assurance Manager
- Sep 1989 — Oct 1990
- Set up improved bug-tracking system that made it easier for
engineers to get information on problem reports.
- To ensure immediate feedback between QA and Development at the
end of a product cycle, instituted a round of daily progress
- Moved responsibility for alpha and beta test program from
marketing to QA department to make testing more
effective without compromising alpha and beta testing as a useful
Applied Expert Systems
Aug 1985 — Feb 1987
Responsible for maintaining several system modules of financial
planning expert system software including: spreadsheet,
backup/restore system, batch script module, file access
modules, product installation and update installation system.
Completely redesigned and reimplemented the backup/restore
system to improve reliability and flexibility. Served as System
Group liaison to Customer Support Group.
Wrote and presented a course on the Xerox Interlisp Environment
for non-Interlisp users, including user’s manual, and a course on
“Lisp Literacy” to make interaction between the Systems Group and
Customer Support more effective.
Warren E. Collins
Aug 1984 — Jul 1985
Designed and wrote several modules of a large Pulmonary
Function Testing system for the IBM PC. Taught C to in-house
programmers. Resolved design issues. Established guidelines for
software version control and system generation. Maintained and
documented project software library.
Feb 1983 — Jul 1984
Maintained and enhanced object-oriented editors of Speech
Application Development System. Designed user interface for a
screen-oriented symbolic debugger for TMS320 signal processing
chip. Designed and implemented device-independent screen and
keyboard modules and macro preprocessor for in-house language.
Jun 1982 — Feb 1983
Maintained and enhanced line editor, file manager, and software
development tools. Implemented ANSI tape support.
BA Computer Science, High Honors.
Honors thesis was on text manipulation and representation of a hypertext system.