Eric Armstrong
Software
Systems and Documentation
Strategist, Evangelist, Technologist
650 814-0370
eric [at] treelight [dot] com
Summary
Self-starter with no end of project ideas. A passionate
user-advocate and risk-taker, with the imagination necessary to elucidate
a "grand vision" coupled with the practical experience needed to
keep projects grounded in reality. Ability to communicate, inspire, and motivate, "sharing
the vision" to
generate excitement. A skilled
writer, software developer, and production specialist who likes to be hands-on,
with a variety of publications
and development projects to his credit.
Goal
Work with a team of smart people, integrating and building tools that enable
collaboration and enhance productivity.
Professional Experience
Independent (2009-)
Focus on making contributions to the open source and entrepreneurial communities.
- Development: RuDI.
Ruby Utilities for DITA processing. Applying Ruby's
capacity for DSL-construction, in conjunction with DreamWeaver templates,
to streamline the DITA production process, improve authoring efficiency, and
(eventually) empower distributed design-and-decision-making
processes online.
(JRuby,
RSpec, RDoc, NetBeans, DITA OT)
- Technology Assessment: Summarized the technology vision. Proposed
an initial "proof of principle".
Eric is like a great translation machine! Put in technologeze
and out comes English.
--Sandy
Klausner, Founder, CubeSystems
Sun Microsystems (2005-2009)
Acted as a technical resource for a team of 12 writers. Documented procedures,
established infrastructure, and managed production processes for 13,500 documents,
combined from half-a-dozen workspaces, and delivered to multiple outlets
(including the localization group).
-
Initiated the group's move to the DITA document format. Investigated the
technology, evaluated and selected tools, ran the pilot study, gave talks
on rationale and lessons learned, and participated in team-building.
Eric communicates effectively with groups and individuals.
If he has new information or discoveries of note,
he shares them with everyone and listens (an important quality) to what people
say in response.
- Defined semantics for generated web pages. Built tools to
automate the process. (Javascript,
JSP, Glassfish, Ruby)
Kudos to Eric for making the (web page) vision a reality.
He thought it through, raised and clarified
various semantic issues, and is the technical brain behind the implementation.
- Evaluated several CMS systems. Designed algorithms
for automated link management in a vanilla version control system (VCS) like
Subversion.
- Devised a DITA implementation strategy and rollout plan.
I have found Eric to be super creative and innovative...but
he also has a pragmatic approach
that produces results in the real world.
- Ran a DITA pilot. Took notes on lessons learned. Wrote papers and
gave presentations to explain DITA's major concepts. Listed, clarified, and
identified heuristics for the 20-some design decisions that face any
DITA project. (blog post pending) Wrote a paper on one of them, published at
CIDM. (See publications.)
Eric's progress with the DITA pilot is directly attributable to his
tenaciousness and his technical acumen.
- Investigated collaboration vehicles for online editing. (Wikis, DITA editors,
publishing systems: Drupal, Daisy)
- Investigated DITA and identified it as a single-source solution for multi-version
man pages and installation pages.
- Constructed a build
process for man-page production. (Rake)
- Wrote the html2man utility
to automate the construction of man pages from HTML file sources, preventing
errors and increasing departmental efficiency. (Ruby)
- Set up a Subversion workspace for departmental
collaboration. Configured Apache for WebDAV access. (Subversion, Apache,
WebDAV)
- Evaluated DITA-based document-collaboration strategies. Wrote a paper
on potential future uses that would take advantage of DITA's extensibility:
Enabling
Collaborative Design-and-Decision Discussions, Online
- Wrote the program that management used to reduce 8,000 broken links in
13,500 files, down to under 500.
Set up a monthly cron job to run it. (Java, cron)
Other
- Filled in for a missing writer and wrote the introductory materials
for rich internet apps.
- Convinced management to make DreamWeaver available to improve
efficiency and to help manage links.
- Reorganized directory hierarchies and proposed workspace strategies to
allow for more extensive use of link-managing tools like DreamWeaver.
- Acted
as a technical resource for the team of 12 writers, documenting
procedures, establishing infrastructure.
- Managed production processes
for 13,500 documents combined from half a dozen workspaces, and pushed to
a variety of locations.
- Worked with the localization team to make sure they had they diffs they
needed.
- To support the Java Community Process (JCP), wrote a series of scripts
that used an HTML differencing tool to produce reviewable HTML "diff" pages.
Ran it as needed for new releases. (TopBlend, CSH)
Eric has an attitude of openness that invites others
to think outside the box and consider opportunities to improve
current processes.
Independent (2003-2005)
- Guide to Generics for version 1.5 of Sun's Java platform
- Java Web Start Guide for Sun. (116 pgs, 42 screen shots, 1
diagram).
- Java 1.3 to 1.5 Migration Guide for Sun.
- Unpublished manuscript: The Politics of Health: A general-systems
examination of interlocking forces in our society.
- Established CitizensAdvisory.org to begin taking the money
out of elections.
Sun Microsystems
(1996-2004)
Acting as a consultant, wrote tutorials and API documentation, managed
production processes, and built quality- improvement software. (Java, CodeGuide,
Unit Testing)
- Development
- CommentMerge: Merge comments from a compilable spec
hierarchy into source files.
- StubMaker: Extract comment-complete, compilable
stubs from source files. Used by the Security team.
- LinkCheck: Look for broken links and missing anchors, treating
discrete sets of files as though co-located.
- LinkFix: Changing HTML
links en masse, using pattern-based substitutions.
- DocCheck: Lint utility for API comments. (DocCheck
release)
- Glossary Servlet: Displaying and edit a localization
glossary in any two of 9 different languages.
- Utility library: Shared and generally-useful
functionality for the above, including application
templates, NIO routines, and a regular-expression processor for files
and directories. (Regex-for-Files
Library)
- Technical Writing
- Reorganized and updated troubleshooting guides for application server
product.
- Revised and improved the Swing API descriptions.
- Other Acivities
- Participated in Douglas Engelbart's Bootstrap
Colloquium at Stanford (http://www.boostrap.org).
Gave two talks.
- Covered the Knowledge Technologies
conference in Austin. Wrote a series of unpublished articles
on the future implications and technological underpinnings of topic maps
and the semantic web.
- Automated localization procedures. (Perl, CSH)
- Covered JavaOne conferences
and wrote freelance articles for JavaWorld.
Independent
(1996)
- JBuilder 2 Bible. A tutorial published by IDG Press, targeted
at beginning Java programmers, using the Borland JBuilder IDE.
Includes an AI application (Othello) and a tree-structured personal project
planner to predict completion dates.
- Software Development: Helped to construct a .NET-based demo
and create a Protege ontology for a pre-funding startup. Explored the
idea of ontology-based program generation.
Additional Professional Experience
- Oracle: Technical Writing. Wrote conversion tools & a proofreading
tool (MS Word).
- Reengineered a voice mail system. (PL/I)
- Founded a startup focused on building productivity software. Initial product
was an outliner. Focused on product definition, marketing, and business development,
while my partners focused on technology development.
- Played a significant role in landing contracts of $2m, $3m, and $6m for
a large hardware vendor as a member of the Major Opportunities Team. Wrote
demos, gave presentations, ran benchmarks, set up hardware, and provided
general technical support for multi-million dollar opportunities.
- Created "vaporware" demos for a Colorized office automation
system, simple voice messaging system.
- Wrote a multi-tasking emulation library and a code-profiling
tool. Two reported bugs in two years. (SP/Pascal)
Professional Memberships
- Silicon Valley DITA Interest Group (SVDIG)
- SDForum Ruby Interest Group
|
- JRuby developers list
- Kenai (project hosting) users and issues lists.
- NetBeans users list
|
Education
Recent coursework and conferences:
- DITA-OT Training, 2008.
- JoAnn Hackos' DITA Bootcamp, 2007.
- Solaris System Administration I & II, Sun Microsystems, 2006.
- SDForum Ruby Conferences, Santa Clara, 2006, 2007.
- Knowledge Technologies Conference, 2004.
- Numerous JavaOne conferences since their inception.
Formal education:
- Post graduate work in pursuit of masters degree: Ohio State University:
Computer Science
- BA, Ohio State University: Philosophy, Political Science, Psychology, General
Systems Theory, Mathematics. (Abstract Algebra, Topology, & Mathematical Logic).
Personal
- Software Development: AI Game Playing program (Othello). Original
heuristics. Tie for 5th in international competition.
- Athletics: Played volleyball at highest amateur levels short of
the Olympics. Gold and silver medals in Bay State games as player/coach.
Black belt in martial arts.
- Writing: Articles on nutrition and fitness at TreeLight.
Political-reform posts at Citizens'
Advisory.
- Other Interests: Taiji, golf, cycling, Irish music, singing,
sudoku, crosswords, cryptoquotes, chess.
References
- For references, see my LinkedIn page.
- For additional comments, see my Kudos collection.