CRAIG LEE BURKET

Software Developer

211 Pleasant St., Millis, MA 02054-1719

home: 508-376-9072, cell: 508-397-2468

email: craig@burket.net

http://www.burket.net/craig

 

Last updated: 8/15/2008

 

BACKGROUND SUMMARY

 

20 years experience (including 4 years of Professional Services experience) specifying, designing, implementing, customizing and integrating software for web applications, content management, electronic publishing and document conversion; including:

·       Working with stakeholders in IT and application-development projects to converge on requirements and designs.

·       Writing requirements specs, functional specs, high-level/detailed design specs, project plans, time estimates and test plans.

·       Prototyping, implementing, unit-, integration-, regression-, security-, performance-testing, and deploying new functionality.

·       Diagnosing and fixing bugs; leading design-, code-, UI-, schedule-, and bug-reviews.

·       Writing configuration guides and developer guides for troubleshooting, maintaining and porting software I’ve developed.

·       Improving the portability of applications between operating systems, runtime environments, databases and browsers.

 

TECHNICAL SUMMARY

 

Languages: Perl, SQL, C#, ASP.NET, VBA, Javascript, IdocScript, Java, VB.NET, ASP3, VB6, Jscript, C++, C, Common Lisp, lex, awk, C-shell, Bourne shell, Prolog

Standards: XSLT, XPath, HTTP, HTML, CSS, XML, SOAP, WSDL, PDF, DocBook, LDAP, DOM, WebDAV, SGML, UML, RTF, Win32, POSIX, X11, Motif

APIs: Word VBA, Excel VBA, Adobe Illustrator Scripting, .NET, Corda, telerik, J2EE (javax.xml.soap, javax.servlet, javax.mail), J2SE (java.sql, java.awt), JDBC, ODBC, TrAX, Oracle UCM (formerly Stellent), ADO.NET, Adobe FDF Toolkit, Acrobat Core, PDFEdit, PDFlib

IDEs: XmlSpy, Visual Studio 2005, Komodo, Microsoft Visual Basic Editor, Adobe ExtendScript Toolkit, Dreamweaver, Eclipse, JBuilder, ColdFusion Studio, JCreatorPro, Visual J++, Visual C++, Visual InterDev, HTML-Kit, CuteHTML

Implementation/Debugging Tools: Java Web Services Developer Pack, Xalan, XML parsers (xerces, msxml2, xp); JRun, Tomcat, jdb, MS SDK for Java, JVISION, Web Servers (MS IIS, Netscape Enterprise Server, Apache); Windows Scripting Host, Signcode, Netscape Signtool; Purify, g++, gcc, gdb, dbx, xdb, adb, GNUmake, etags, ctags, cflow, sed, NFS, Samba, Ataman, mwm

Testing Tools: MS Web App Stress Tool, WebTrends, BoundsChecker, PureCoverage, Quantify, CodeCenter, TestCenter

Source Code Control Systems: Subversion, MKS SI, Visual SourceSafe, Surround SCM, ClearCase, MultiSite, SCCS

Content/Records Management Systems: SharePoint 2007, Oracle UCM (formerly Stellent Content Server, Stellent Content Tracker and Stellent Content Publisher), MDY FileSurf, Stellent Collaboration Server, empolis SiGMaLink

Directory Services Tools: Novell eDirectory, Novell DirXML, LDAP Browser\Editor v2.8.1, Sun ONE Directory Server

Database Tools: MS SQL Server 2000 and 2005, SQL Server Management Studio, SSIS, DTS, Rapid SQL, Oracle 9i (Enterprise Manager, SQL*Plus, loadjava, imp, exp); DbVisualizer, Toad, MSDE, MS Access

Connectivity Tools: Microsoft Terminal Services, Webex, NetMeeting, VPN, Windows XP Remote Desktop Connection, VNC, Remote Administrator

Documentation Tools: MS Word, TextPad, MS PowerPoint, MS Excel, OpenWiki, Stellent OutsideIn, Adobe Acrobat, Adobe FrameMaker, Quark XPress, javadoc, Interleaf, emacs, vi

Operating Systems: Windows Server 2003, Windows XP/2000/NT/98/95, MacOS 9, Solaris, Linux, HP-UX, AIX, IRIX, DEC UNIX, DG/UX, Novell UnixWare, SCO UNIX SystemV/386, Motorola UNIX SystemV/88

Hardware: Intel Pentium, Intel x86, Sun UltraSPARC, Sun4, Sun3, DEC AXP, HP 700, IBM RS6000, Silicon Graphics, Motorola Delta Series, DG AViiON, GraphOn

 

PROFESSIONAL EXPERIENCE

 

DECISION RESOURCES, INC., Waltham, MA, DecisionResources.com                                                               January 2007 to present

A provider of business analytics and market research for the pharmaceutical industry.

 

Senior Applications Developer

 

·       Designed and implemented a Perl script that writes a Stellent BatchLoader script, assigning appropriate metadata values to each file based on its location in the given filesystem hierarchy.  Used this to batch-load a hierarchy of legacy documents into Stellent Content Server.

·       Enhanced, maintained and documented:

§        A SQL Server 2005 database of epidemiological data.

§        A web application (in ASP.NET and C#) that is used in-house to add/modify/delete data in the above database.

§        A set of SSIS and DTS packages that flow data from the above database to the back-end database for the company’s Patient Base product.

·       Wrote a SQL stored procedure that queries Stellent Content Tracker data in order to extract date-of-first-access for given classes of content items by given subscribers.

·       Wrote a Stellent BatchBuilder mapping file that uses IdocScript to assign custom metadata values based on filenames of the files to be batch loaded.

·       Developed an XSLT transform that reads an Excel spreadsheet (saved as SpreadsheetML) and outputs SQL code for loading the spreadsheet’s data into a particular SQL Server database.  Extended the schema of this database.

·       Wrote and maintained design specs for new features to be added to the DecisionBase2008 product.  Set up development and staging environments for DecisionBase2008 and implemented one of its new features: a “Drug Profiles” page (using ASP.NET and C#).

·       Installed and configured an instance of Microsoft SharePoint Server 2007.  Designed and deployed a hierarchical SharePoint site collection representing the company’s departments and offices.

·       Conducted requirements-gathering interviews and wrote a Requirements Specification, a Feature Matrix and an Executive Summary presentation for a proposed enterprise scheduling and resource-allocation system to be developed and used in-house. 

·       Designed and implemented 2 Oracle UCM (formerly Stellent Content Server) criteria workflows (each with a hierarchy of Contribution Folders) for the in-house Editorial group, using IdocScript and workflow tokens in the Entry, Update and Exit events of the workflow steps.

·       Proposed, designed, implemented and maintained utilities for the Production department:

§        a “reference manager data importer” module (in Word VBA) that imports docvars and fields meeting certain criteria from a specified Word document into the current Word document.

§        a “figure data extractor” module (in Excel VBA) that extracts data to be graphed from a given set of spreadsheets and saves this data as a set of  tab-separated-value (TSV) text files suitable for input to a “figure data importer”, which is a set of Adobe Illustrator scripts (in Adobe’s Extended Javascript) and saved Illustrator Actions; this module iteratively imports graph data from a given set of TSV files into a given template graph object, renders each graph and saves it as an Illustrator (.ai) file.  Enhanced these utilities to support multiple graphs per template.

§        a Perl script that uses the HTML::Parser module to make transformations in the HTML output from Stellent Content Publisher.

·       Implemented, tested, deployed and maintained the DecisionBase 2007 web application (using ASP.NET and C#).

·       Completed the design specifications, timeline, test plan and bug-tracking system for the DecisionBase 2007 web application product (see details below).

 

WHISTLING FROG SOFTWARE, Millis, MA                                                                                               August 2006 to December 2006

An independent Professional Services provider.

 

Consulting Software Engineer

 

Client: Decision Resources, Inc., Waltham, MA                                                                                          August 2006 to December 2006

·       Developed specifications (user interface, functionality, high-level design, detailed design, database schema, metadata schema) for a new web-application product (DecisionBase 2007), which consists of:

§        a front-end using ASP.NET, Javascript, telerik controls and Corda graphics

§        a middle tier using web services and C# , consisting of the following layers:

§       code-behind  (event-handlers) for objects in the .aspx, .ashx and .master files

§       C# classes, methods, and properties that implement the business logic and its supporting data structures

§       a data-access layer that encapsulates:

§       communication via SQL with the back-end database

§       communication via web services with the back-end content management system

§        a back-end consisting of  SQL Server and Oracle UCM (formerly Stellent Content Server)

·       Developed a mockup of the product using HTML, CSS and Javascript.

·       Set up and maintained Subversion as the source-control system for use by the development team.

·       Implemented a workaround for a bug in a customized instance of Oracle UCM (formerly Stellent Content Server).

 

MOODY’S INVESTORS SERVICE, Jersey City, NJ, moodys.com                                                                 August 2005 to August 2006

A provider of credit ratings for bonds and other financial instruments.

 

Software Engineer

 

·       Maintained and enhanced an instance of Stellent Content Server 7.1 that:

§        is integrated with a records-management application (MDY FileSurf), and

§        has an extensively customized UI based on the Stellent Folders component. 

·       Planned, scheduled and executed the migration of this Content Server instance from using local storage to using Network- Attached Storage (NAS).

·       Diagnosed and fixed bugs in workflow, UI, help system, and the synchronization between the Stellent and FileSurf databases.   

·       Added new DocTypes whose visibility is conditional on the context in which a document is being checked in.

·       Planned, coordinated, and participated in controlled “rollouts” of enhancements and bug fixes from the QA environment to the production environment.

·       Enhanced a report generator (implemented in Perl) that performs SQL queries on the Stellent database to generate reports on policy-compliance as Excel spreadsheets.

·       Created SQL queries and WebTrends profiles to generate weekly/monthly reports that show statistics on the usage of the Stellent system.  Wrote training documentation on how to use these tools to generate and customize these reports.

·       Collected and analyzed performance-related data about the Stellent system’s hardware, networks, databases, and customized code in order to identify bottlenecks and suggest changes to improve performance.  Implemented and assessed the results of these performance improvements.

·       Diagnosed problems reported by internal users to differentiate between those due to user-error and those which represent bugs in the Stellent/Filesurf databases and/or source code.

·       Set up a Stellent Content Server instance for integration with Mercury testing tools for performance monitoring/analysis.

·       Wrote documentation for developers (as a set of wiki pages) on the Stellent and Filesurf instances at Moody’s.

 

WHISTLING FROG SOFTWARE, Millis, MA                                                                                                                                 2002 to 2005

An independent Professional Services provider.

 

Consulting Software Engineer

 

Client: Frontline Logic, Russiaville, IN, FrontlineLogic.com                                                                                      Sept 2004 to July 2005

·       Project sponsor: CGI-AMS                                                                                                                                                July-August 2005

Enhanced the ExtendedSearch component for Stellent Content Server that I developed for this client in 2003 (see below).  The enhancements are to: (1) support conjunctions of clauses in the given query, (2) handle metadata values in the query that contain spaces and/or HTML-encoded characters, and (3) improve performance by dynamically constructing SQL queries that return the documents that match all the clauses in the query.

·       Project sponsor: Carrier Corp.                                                                                                                                           March-July 2005

Advised the decision-makers in a corporate IT department and helped them reach agreement on functional requirements,buy-versus-build decisions and a project plan for upgrading their Stellent content management system from version 4.6 to 7.1:

§        Proposed a range of options for functionality and high-level design to meet the requirements.

§        Tested and evaluated utilities, web applications and Content Server components from several vendors for their suitability to the project; estimated the effort required to customize and integrate them. 

§        Prepared and presented demos (via Webex) of: (1) preliminary customizations (using ASP3, JSP, IdocScript, and SQL) of the above tools and components to address: (a) interactively querying/updating values of a metadata field across a set of content items, (b) managing relationships between documents, (c) restricting visibility of doc types based on Accounts and (d) restricting visibility of metadata fields based on doc type; (2) the use of Stellent’s Metadata Schema Mapping feature to create a dependent choice list that depends on values of dDocType; (3) the use of BatchLoader for updating metadata values.  

§        Installed and configured the Tomcat 5 JSP server and customized Content Server’s database by adding custom tables (using  SQL Server Enterprise Manager). 

§        Wrote detailed instructions for the client’s IT staff on how to implement specific sub-tasks of the project.

§        Mentored the client’s IT staff in using Configuration Manager, Repository Manager, User Admin, Batchloader database tools and Adobe Acrobat to: (1) configure users, accounts, doctypes, metadata fields, option lists and dependent choice lists for a Content Server instance, (2) update metadata values using Batchloader scripts and diagnose/fix failed updates, (3) update/rebuild the Verity full-text search collection and resolve problems with this process, and  (4) optimize/linearize the PDF files in the repository.

§        Developed test cases and test plans for the above changes.

§        Gave an overview and demo (via Webex) of Content Server’s workflow functionality for representatives from business units at Carrier.

·       Project sponsor: State of Alaska Department of Natural Resources                                                                            May-June 2005

Analyzed the source code and behavior of a Content Server component written by another consultant in order to write a Developer’s Guide document for the client that describes (1) how to use Component Wizard and Component Manager to create, maintain, package and install Content Server components in general and the client’s component in particular, (2) the purpose, actions and usage of each of the component’s resources, services, templates, queries and custom database tables, and (3) techniques and resources for troubleshooting and debugging Content Server components.  Helped the client (via phone and webex) to diagnose and fix a bug in the component’s IdocScript.

·       Project sponsor: Moody’s Investors Service                                                                                                                           January 2005

Designed and implemented a Stellent component for publishing documents from Stellent Content Server 7.1 to the client’s corporate website.  Implemented this as a custom IdcService that uses the javax.xml.soap classes (from the Java Web Services Developer Pack) to: (1) construct a SOAP message containing the given document’s metadata and base-64-encoded content, (2) send the SOAP message to a web service and (3) parse the response from the web service to determine success or failure.  Added Stellent templates and IdocScript resources to enable calling this service interactively from the standard Content Information page, and to report its results on a custom page.

·       Project sponsor: Moody’s Investors Service                                                                                                                       December 2004

Wrote a custom Stellent search service that is like Content Server’s standard search except that it returns a single result for each group of documents that have the same value for a particular metadata field, whose name is specified in an environment file.  The returned ResultSet has an added field that contains the number of documents in each group.  Developed and unit-tested this new service in a new component, then integrated it into an existing component.  Wrote new Stellent templates and resources (using IdocScript and JavaScript) that display the search results from the above service in conformance with a given set of GUI requirements and mockups.

·       Project sponsor: Moody’s Investors Service                                                                                         September 2004 – February 2005

Customized a Stellent Content Server 7.1 instance to enable using it as a “back-end content management system” that (1) replaces a UNIX filesystem as the repository for content that is published to a corporate website, and (2) provides a set of web service operations that are called from libraries in the middle tier:

§        Captured and clarified requirements, and proposed high-level design alternatives for meeting these requirements.  Defined project milestones, dependencies, risks, deliverables and schedule.

§        Installed Content Server 7.1.1, Dynamic Converter, and the SOAP and Folders components on Windows Server 2003, using SQL Server as the back-end database, and IIS 6 as the webserver.

§        Designed and implemented a metadata schema for this Content Server instance.

§        Wrote a detailed design spec, test plan, installation/configuration guide and developer’s guide for the new system.

§        Implemented and tested a Stellent component (in Java, using Eclipse) that provides custom Stellent services that implement the above web service operations.  Generated a WSDL file for these services to make them callable as a web service via SOAP.   Developed test drivers (using Stellent’s Java- and VB-based Soap Clients) for unit-testing and regression-testing the new web service operations.

§        Conducted weekly code reviews of the new web service (and its underlying custom services, sub-services, handlers, queries and supporting Java classes) with the engineers who will maintain the system.

 

Client: Millis Democratic Town Committee, Millis, MA, MillisDems.org                                                October 2004 – November 2006

·       Designed, implemented (using Dreamweaver) and deployed the original millisdems.org website.

·       Provided training and documentation on how to maintain and extend it. 

·       Maintained the site with occasional updates as requested by the client.

 

Client: Ovitas, Inc., Woburn, MA, ovitas.com                                                                                                                               August 2004

·       Invented a demo for the integration between a content management system (empolis SiGMaLink) and Adobe FrameMaker: created FrameMaker native documents and books; scripted the demo; configured the SiGMaLink server installation and its underlying Oracle database: added users, groups, workflows, metadata schema and instances, relational query masks, and hooks.  Participated in the presentation of the demo.

·       Set up a pipeline for converting "image only" PDF documents to HTML using Acrobat Page Capture and Stellent OutsideIn HTMLExport with a customized output template.  Enabled batch processing for this conversion using a custom batch sequence in Acrobat and a Windows batch script that applies HTMLExport to the PDF Normal files in a given input directory and writes the output .htm files to a given output directory.  The dataflow is: PDF Image Only => (Acrobat Page Capture) => PDF Normal => (OutsideIn HTMLExport) => HTML.

 

Client: Duck Designs Co., Derry, NH                                                                                                                                                    July 2004

·       Implemented Dreamweaver templates, HTML pages, CSS styles, and Javascript-driven popup menus for a new web site, based on a given graphical design.

 

Client: Media Entities, Inc., Medford, MA, MediaEntities.com                                                                                         January-July 2004

·       Designed and implemented XML DTDs, XML test files, MS Word templates, master pages in Quark XPress document templates and mappings between XML elements and named styles in the Word and Quark templates. These are used by the Media Entities “XML ToolWorks” application to automate the process of flowing content between Word and Quark documents.  The dataflow is: Word ó (ToolWorks Import/Export) ó valid XML ó (ToolWorks Import/Export) ó Quark.   Tested this on Windows 2000, XP, and MacOS 9.

·       Extracted DocBook-compliant XML from PDF files using the CambridgeDocs “xDoc Converter” application.  Customized the rule-sets and XSLT transforms that are used in this process.  Developed a set of regular expressions to find and fix errors in the XML generated by the above application.

·       Wrote a Quark Xtension (in C) that provides an API for iteratively applying a caller-supplied function to the files in a given directory that are selected by a caller-supplied filter function.

 

Client: empolis North America, Inc., Burlington, MA, empolis-na.com                                                            September-December 2003

·       Customized the SiGMaLink content management system for use in a medical reference publishing application:

§        Designed and implemented a Java class that uses the SiGMaLink API to export XML “information objects” (consisting of articles on medical topics) from a SiGMaLink repository, and transforms these objects into an intermediate XML format suitable for conversion to HTML.  The transformation includes replacing specified character entities with XML elements and using XSLT (via the Xalan-Java API) to delete specific elements and their contents.

§        Implemented a knowledge model (consisting of database tables and indexes in Oracle 9i) that associates keywords and phrases (together with their modifiers, synonyms and rankings) with their locations and context within the information objects of the above SiGMaLink repository.

§        Designed and implemented Java classes that query and update the above database tables (via SQL, using JDBC) in order to output a set of cross-referenced index files (in XML) that are used by a search engine.

§        Made the methods of the above classes callable from within Oracle 9i as stored procedures.  Wrote a façade class that provides an interface for calling the stored procedures from JSP.

·       Wrote a SiGMaLink request hook that sends email notifications (using javax.mail) when an information object is checked in.

·       Installed and configured Oracle 9i and SiGMaLink on Windows XP and Windows 2000.

 

Client: Binary Minds, Inc., Medway, MA, BinaryMinds.com                                                                                                     August 2003

·       Implemented 2 solutions for generating 2D barcodes that can be called from ColdFusion 5 Markup Language (.cfm) files:

§        Modified a third-party Java servlet (using javax.servlet) so that it accepts the necessary input parameters for initializing the underlying barcode-generator class, converts the output image to PNG format by calling a freeware PNG encoder, writes the result to a specified file and returns a status message.  Installed the JRun application server, installed the modified servlet within it and wrote a .cfm test page that calls the servlet.

§        Wrote a Java CFX tag that provides the same functionality as the above servlet (by calling the same underlying classes), but can be used in an environment where no servlet containers or application servers are installed.

 

Client: Alliance Consulting, Framingham, MA, alliance-consulting.com                                                      October 2002 – August 2003

·       Project sponsor: Colliers International -- Phase 1:                                                                                                   Oct 2002 – Feb 2003

Wrote XSLT transforms for an LDAP server implementation that uses Novell’s eDirectory, DirXML and XDS DTD.  The XSLT implements business logic that determines the placement, initialization and modification of objects in a central LDAP repository (a Directory Information Tree implemented in eDirectory).  These objects represent name-and-address-book entries for employees and email distribution groups.  They are created, renamed and moved during automated data-import and data-update processes using DirXML.  Much of the XSLT code deals with detecting, handling and reporting error conditions (e.g., missing/invalid/inconsistent attribute values and illegal operations) as the name-and-address-book entries (and changes to them) are pulled into the repository from instances of MS Exchange, Active Directory, and Lotus Notes/Domino.  Used  Novell ConsoleOne along with an LDAP browser to test and debug this code.

·       Project sponsor: Colliers International -- Phase 2:                                                                                                                August 2003

Modified the DirXML drivers to recognize additional attributes of the imported entries.  Enhanced the XSLT transforms to (1) set the password of a newly created object to a placeholder value and (2) handle an “ExcludeFromRepository” attribute on imported entries, whose boolean value determines whether an object for the entry should be created in or deleted from the LDAP repository.

 

Client: Molecular.com, Watertown, MA, molecular.com                                                                                                          May-July 2003

·       Project sponsor: Genzyme Corp.

Advised a team of web developers on using Stellent Content Server and Stellent Content Publisher to construct a public-facing website for  Facilitated technical communication in meetings between developers and managers from Molecular and Genzyme.  Defined high-level milestones and implementation tasks for the project and created a proof-of-concept Content Publisher project file.  Identified and resolved technical issues in setting up a development environment at Molecular.com with remote access (via VPN) to Genzyme’s Content Server repository.

 

Client: Frontline Logic, Russiaville, IN, FrontlineLogic.com                                                                                                   April-July 2003

·       Project sponsor: Boston Stellent Users Group                                                                                                                            Sept 2003

Gave a presentation/demo of the ExtendedSearch component that I implemented (see below).

·       Project sponsor: Raytheon Co.                                                                                                                                                         July 2003

Installed and configured Stellent applications (Content Server, Inbound Refinery, PDF Converter, the Folders component, WebDAV support (including the Tomcat servlet container), Dynamic Converter and Content Publisher) in a secure IT environment.  Provided instruction on the functionality of these applications and on the tasks and concepts involved in administering them.  Discussed alternative schemes for enabling developers and content authors to use the Stellent applications to build and maintain the client’s websites.

·       Project sponsor: CGI-AMS                                                                                                                                                    April-June 2003

Designed and implemented (in Java) 2 components for Stellent Content Server that use ServiceHandlers to define custom actions that are inserted into standard Stellent services: (1) the ExtendedSearch component extends the standard Search service to include documents in workflows and work-in-progress documents (by sending SQL queries to the Content Server database);  (2) the ContributionReview component replicates check-in operations on a remote Content Server instance, using Stellent’s “idcbean” package to communicate with the remote server.

 

Client: Crown Partners LLC, Oakwood OH                                                                                                                          March-April 2003

·       Fixed bugs and added enhancements to a customized instance of Stellent Content Server and Stellent Content Publisher where Publisher is used to generate a corporate website from native documents, JavaScript, CSS, HCSF, HCSP and Publisher Project files stored in Content Server.

·       Specified requirements, design options, implementation tasks and time estimates for a project that uses Stellent Content Publisher and Content Server to construct a website with complex navigational controls.

·       Integrated a Stellent Content Server installation with an LDAP source (Sun ONE Directory Server) for user authentication and authorization.  Configured Content Server’s default LDAP Provider so that (1) a user’s membership in specific groups in the LDAP directory results in the assignment of the appropriate Roles and Accounts to that user when they log in to Content Server and (2) specific LDAP user attributes are mapped to user metadata fields in Content Server.

 

Client: Quotient, Inc., Columbia, MD, quotient-inc.com                                                                                                            February 2003

·       Evaluated and ranked the ability of Stellent's content management/publishing products to meet 150 specific technical requirements, as part of an objective comparison between Stellent and a competing content management system.

 

Client: W.A. Wilde Co., Holliston, MA, wilde.com                                                                                               September-November 2002

·       Gave tutorials on Stellent Content Server 6.1 (including security models, workflows, the Folders component and WebDAV support) and a presentation on .NET technologies to the CIO and IT staff.

·       Developed a web application (using ASP.NET, VB.NET, ADO.NET and COM wrappers) that is a front-end to an inventory database implemented in SQL Server.  The application provides a browser-based GUI for creating, deleting and updating objects (and their properties and relationships) in the database.  It also allows specified operations to be applied “in bulk” to specified sets of objects in the database.  The dataflow for this application is: ASP.NET Web Form controls ó VB.NET objects ó ADO.NET objects ó COM wrapper classes ó ADODB RecordSets ó a legacy database API in VB6 ó SQL ó database tables.

·       Wrote client-side JavaScript functions to validate zip codes and phone numbers entered in HTML forms.

 

STELLENT, INC. (formerly IntraNet Solutions, now part of Oracle), Marlborough, MA, stellent.com                                 1999 to 2002

A provider of web-based content management and data-conversion software, with headquarters in Eden Prairie, MN.

 

Senior Software Development Engineer

 

·       Developed a set of Java adapter classes for integrating Stellent Content Categorizer with categorization engines from other vendors.  Designed and implemented a package that extracts a taxonomy from a categorization engine and converts it into a set of dynamically generated web pages (linked in a tree structure), to enable navigation of the taxonomy in Stellent Content Server.  Developed an applet-based GUI for configuring and running this process. 

·       Enhanced Content Server’s browser-based Check-In and Update pages so that Content Categorizer can be invoked to update the metadata of an item in the repository, in addition to suggesting metadata values when the item is first checked in. 

·       Enhanced Content Server’s search-results pages so that for each item found, each of its assigned categories is displayed as a “taxonomy vector” (a breadcrumbs-style path), where each element of the vector is a link to the web page for that category in one of the navigable taxonomies.

·       Wrote XSLT stylesheets that transform XML in the Flexiondoc and SearchML schemas of Stellent’s “Outside In XML Export” into the XML format used by Content Categorizer.  Used Apache's Xalan XSL processor and Xerces XML parser, called via Apache's Xalan-Java implementation of the Transformation API for XML (TrAX).

·       Designed and implemented a utility for merging PDF Forms Data Files (FDF) into a PDF template file and outputting the result as either PDF or Postscript.  Wrote this in C++, using Adobe’s FDF Toolkit, Acrobat Core API, PDFEdit API and PDF Library SDK.

·       As part of a small development team, specified, designed (using UML class diagrams) and implemented (as a multi-threaded Java application) the Stellent Report Parser product, which takes database reports as input, extracts metadata from them according to user-specified rules, splits them into content items of specified granularity, converts these items to PDF, HTML, or XML+XSL and checks in the results to Stellent Content Server.  Added a “pass-through” mode in which the input files (and extracted metadata) are checked in without any format conversion.  Developed (using java.awt) an interactive editor for the persistent objects (“Blueprints”) that specify how Report Parser processes particular types of input reports.  Tested this product on Solaris (invoked via a Bourne shell script), Windows NT and Windows 2000.  Fixed bugs caused by differences between the Java implementations on these platforms. 

·       Wrote a custom doclet that generates an overview of Report Parser’s Java packages, interfaces and classes.

·       Wrote a utility in VB6 that mediates inter-process communication between Stellent Content Server and a records-management application (ForeMost Enterprise).

·       Designed and implemented a “personal navigation environment” for Stellent Content Server, including user self-registration and authentication.  This used ASP, client-side JavaScript and CSS.

·       Developed an e-commerce product ("Softgoods") that uses ASP, JavaScript, Jscript, ODBC, MS Access and ISAPI/NSAPI filters to manage subscription-based delivery of online content to authenticated users.  Tested this product on Windows, Solaris and Linux.

·       Attended and reported on technical conferences and seminars: Knowledge Management World 2001; Microsoft Web Services Summit; IEEE/ACM Bioinformatics Lecture Series; Inxight webinars.

 

INTERLEAF, INC., Waltham, MA                                                                                                                                                        1989 to 1999

A provider of software for complex technical publishing and document/content management.

               

Member of Technical Staff (Development Engineer)

 

·       Integrated a prototype implementation for the “Interleaf 7 XML” product (written in Lisp by another development team) into the main branch of the Interleaf 7 source-code.

·       Designed and implemented the Publish-As-XML subsystem of Interleaf 7.  Gave a presentation to other developers on the architecture and implementation of the Publish-As-XML and Publish-As-HTML subsystems.

·       Diagnosed and fixed bugs in Interleaf 7 subsystems including Publish-As-HTML, I18N and lisp interpreter.

·       Implemented the use of vendor-supplied Motif/X1 libraries, header files and runtime environment files in Interleaf 7 on Solaris and HP-UX.  Consulted with technical contacts at Hewlett-Packard and Sun Microsystems to devise workarounds for vendor-specific bugs.

·       Developed a proof-of-concept prototype for DTD-compliant “structured authoring” of XML documents using an integration between Interleaf 6 and Microstar's Near & Far Designer.  Exhibited this prototype at the "XML '98" conference in Seattle.

·       Wrote scope-of-work and design documents for Interleaf 7 enhancements including Publish-As-HTML, Publish-As-XML, UNIX/Windows interoperability and a user-interface for file-format conversion.

·       Planned features, tasks and schedules for a set of “filter” utilities that perform bi-directional conversions between Interleaf documents and other formats including RTF, WordPerfect, CGM, IGES, TIFF, JPEG, GIF.

·       Enhanced Interleaf’s graphics-conversion libraries (in C) to work with the Graphics Data Stream Format (GDSF, derived from CGM) and ImageStream graphics libraries from Inso Corporation.  Documented how these technologies are used by Interleaf’s filter utilities.

·       Enhanced Interleaf’s RTF import/export filters (in C) to handle Japanese text and fonts.  Wrote scope-of-work documents, time-estimates, project plans and design specs.  Implemented the new functionality, collected test-files and reviewed the documentation.

·       Diagnosed and fixed bugs in the Interleaf filter utilities and their supporting libraries.  Maintained and enhanced the makefiles in the filters source-code hierarchy; fixed platform-specific remake errors.

·       Developed and maintained shell scripts and Perl scripts for releasing changes to the filter utilities’ source hierarchy, running automatic builds of the filters on Windows NT and UNIX, running automated regression tests and checking for build-errors.  Wrote design specs and project plans for enhancing and using these tools.

·       Designed a workflow for moving filter executables from development through QA and into the larger Interleaf products, using a ClearCase repository to store, label and track filter executables that have been shipped to customers.

·       Coordinated the exchange of filter source-code changes (in C) with a team of developers and QA engineers in Moscow.  Reviewed, compiled, debugged and integrated their source-code changes into the Interleaf filter utilities.

·       Developed tools (in lex, awk and Bourne-shell) that find and fix non-portable constructs in Interleaf source code.

·       Designed and implemented a Bourne-shell script that uses sed, awk and WorldView utilities to "flatten" a hierarchy of WorldView documents so that they can be viewed on IBM VM and MVS platforms.

·       Ported Interleaf applications to (1) DEC UNIX (OSF/1) on DEC AXP, (2) Motorola UNIX SystemV/88 R4 using the 88open Binary Compatibility Standard and (3) CMW+/386 (secure SCO UNIX System V/386).

·       Improved the performance of the installation tools for Interleaf 5 and Interleaf 6.  Added new features and built a test environment for them.

·       Contributed to the development and maintenance of WorldView Press (WVP), which converts a set of Interleaf documents into a searchable, hyperlinked collection of WorldView (Printerleaf) files.  Added enhancements to Interleaf 5 and TPS4 (in Lisp and C) in order to support WVP, which was demonstrated at a Seybold show in 1992 and was later used to generate the documentation for the Open Look release of Interleaf 5.

·       Developed enhancements and new features for Interleaf 5, including: "layered applications" built on an object system written in Lisp; online help for layered applications; persistent storage of Lisp objects; hypertext authoring in Interleaf documents; automatic generation of hypertext-linked indexes, tables of contents and cross-references.

·       Diagnosed and fixed bugs in the printing, diagramming and Lisp subsystems of Interleaf 5 (implemented in C).

·       Designed and implemented a prototype integration between Interleaf 5 and Sun Microsystems' Link Service 1.0.

·       Attended, summarized and reviewed technical conferences and seminars.

 

AGFA CORPORATION, AGFA COMPUGRAPHIC DIVISION, Wilmington, MA                                                                   1988 to 1989

A provider of electronic publishing software and typesetting systems.

                                                                                                                                               

Software Engineer

 

·       Continued the development (in C) of electronic publishing software acquired from Texet Corporation.  Ported this software to SunOS 4.0 on SPARC and mc68030, and developed a source-code control system for maintaining it.

 

TEXET CORPORATION, Arlington, MA                                                                                                                                          1986 to 1988

A pioneer in WYSIWYG editing of structured documents.

 

Software Engineer

 

·       Developed pagination and composition software (using C). Designed and implemented tools for interactive scaling of text embedded in vector graphics, a user interface for converting units of linear measure and a system that enables localization of an application's user-visible text.

 

EDUCATION

 

Training Course: Autonomy Essentials, autonomy.com                                                                                                                                   2002

 

Graduate Courses: Neural Networks, Fuzzy Logic, Advanced Object-Oriented Design and Programming in C++, Developing Portable Programs in C, Building Graphical User Interfaces in X11 and Motif, Knowledge-Base Design, Advanced Discrete Mathematics, Linear Algebra; Harvard University Extension School and Northeastern University, 1992-1995

 

Certificate in Computer Science, University of Massachusetts, Boston, MA                                                                                               1989

 

B.Music with honors, New England Conservatory of Music, Boston, MA                                                                                                  1978

 

AFFILIATIONS

 

Boston Stellent User Group

 

Association for Computing Machinery, Greater Boston Chapter, gbcacm.org

 

Electronic Frontier Foundation, eff.org