Andrew Marc Greene
http://www.greenehouse.com/a
SUMMARY
Seventeen years of experience in all phases of software
development, with particular focus on architecture, design,
specification, and implementation. Strengths include:
- Distilling complex requirement sets into fundamental units, and
communicating them effectively through written specifications and
documentation.
- Designing modular architectures that provide for the evolution of
requirements as the product's target market expands.
- Writing code that is reliable, maintainable, efficient, and
repurposable.
- Applying an understanding of the customer's perspective to the
determination of requirements, the design of user interaction, and
the provision of customer support.
EXPERIENCE
Software Architect (July 1997–present)
Pageflex, a division of
Bitstream
(Cambridge, Mass.)
Member of design and implementation team for
entire Pageflex product line: Pageflex Storefront (an out-of-the-box
e-commerce web-to-print website, 2005–present), Pageflex
Campaign Manager (a tool for producing personalized web sites and
tracking customer response, 2007–present), Pageflex Server (a
scalable variable-data publishing system, 2006–present), .EDIT
(a web-based tool for page design and layout, 1998–present), and
NuDoc (the underlying composition and pagination library,
1997–present).
Architecture and Design: Responsibilities
include writing architecture documentation and specifications,
implementing main components, and designing and maintaining the SQL
schemas, including all stored procedures and functions. Developed
mechanisms using XML and XSLT for auto-generating documented schema
code and data access classes in SQL and C#, and for handling data
export/import/upgrade. Designed and implemented scalable components,
including interprocess communication classes and data flow
architecture, for Pageflex Server.
Designed the architecture for and was technical
lead for .EDIT, a component that provides a browser-based GUI to a
server-side composition tool. The .EDIT product allows Pageflex's
customers to provide their end users with a desktop publishing tool with a
Java or Flash client, requiring no software installation on the
client's end, but with the full power of a server-based composition
engine and a centrally maintained font and image library. The RPC
interface classes in Java, Flash, C#, and C++, along with their
documentation in HTML and RTF formats, are automatically generated
from a common XML-based metalanguage. Wrote the API documentation that
shipped with the product.
Designed and implemented the text composition
algorithms for NuDoc, a library for creating highly designed
variable-layout pages. These algorithms include user-specified tuning
constants for controlling the relative importance of various
constraints, along with multi-pass composition to support copyfitting,
column balancing, and feathering (vertical justification).
Wrote and maintained unit and integration tests
and test frameworks for all of our products.
Documentation: Wrote first drafts of
end-user documentation and API documentation. Reviewed all
documentation for technical accuracy and clarity. Also wrote internal
documentation for certain tools and our internal class
libraries.
Support: Collaborated closely with the
support team and with customers to solve difficult support cases.
Participated in WebEx sessions to assist customers. Wrote tech notes
for the support website and knowledge base. Participated in online
support forums.
Tools: Maintained the team's internal
wiki, Subversion server, Lotus Notes server and databases. Wrote the
webapp used to reserve conference rooms. Was one of the coders and
maintainers of our nightly build script.
W3C: Was Pageflex's primary representative
to the XSL Working Group June 1998–June 2000. Contributed to the
development of the XSLT 1.0 specification.
Senior Software Engineer (May 1996–July 1997)
Artisoft
(Cambridge, Mass.)
Contributed to server architecture for a computer
telephony product. Designed and implemented in C++ the virtual
machine in which most of the server software runs. Responsible for
scheduling of server component development. Set up and maintained
the Lotus Notes server for the Computer Telephony Products Group.
Software Engineer (June 1995–May 1996)
AT&T New Media Services
(Cambridge, Mass.)
Co-developed a C++ application that uses SGML
input to drive OLE automation calls into a proprietary publishing
system. Team leader for a project to extract large amounts of data
through the OLE interface into an SGML format.
Software Engineer (June 1991–June 1995)
Charles View Software
(Newton, Mass.)
Primary engineer for "Dan Bricklin's Demo-it!" Implemented an
HTML parser and a Windows 3.1-compatible thread class for a
Japanese-language Web browser. Designed and implemented the font
database for the Font Selector component of Microsoft's Word
Assistant. Primary engineer on a VIM/MAPI API-conversion library
for Lotus. Internationalized the Windows version of Band-in-a-Box
for "Far East" languages.
EDUCATION
Massachusetts Institute of Technology (1987-1991)
Cambridge, Mass.
S. B. in Physics with Electrical Engineering
S. B. in Humanities with Engineering (Music with Computer Science)
Physics thesis on "Computer Simulation of Background Radiation in
X-Ray Detectors." Music thesis on "Ruddigore and the
Nineteenth-Century Operetta."
- Received the William L. Stewart award for service to the MIT
Community, 1991.
- Founding President (1988–1990) of the MIT Gilbert & Sullivan
Players.
- Secretary (1989) and Chairman (1990) of the MIT Student
Information Processing Board.
- Publicity Director (1991) and Publicity Subdirector for Design
(1990, 1992) of the MIT Lecture Series Committee.
PUBLICATIONS
- "BaSiX, an Interpreter Written in TeX", TUGboat 11:3, Sept. 1990.
Presented at the 1990 annual meeting of the TeX Users Group.
- "TeXreation–Playing Games with TeX's Mind", TUGboat 10:4, Dec. 1989.
Presented at the 1989 annual meeting of the TeX Users Group.
MEMBERSHIPS AND OFFICES HELD
- National Puzzlers' League (2003–present). Co-authored
the New York Times crossword puzzle for Sunday, Aug. 26, 2007. Regular
contributor of puzzles to "The Enigma." Published in "National
Puzzlers' League Cryptic Crosswords."
- Zamir Chorale of Boston (1992–2007). Bass Section
Leader (1996–2006); Board member (1996–2004); Corporate
Clerk (1998–2003); Webmaster (1996–2006); Editor in
Chief of "Notes from Zamir" magazine (1997–2003)
MISC.
- Main languages and technologies: C# (including .NET and ASP.NET),
C++, perl, SQL (MS SQL Server 2000 and 2005; MySQL), XML, XSLT, HTML,
CSS, JavaScript, AJAX, Java, C, Windows (all versions since 3.1),
Linux. Have also worked in x86 assembler, Emacs Lisp, PostScript,
SGML, Python.
- United States citizen.