CRAIG LEE BURKET Software Engineer 211 Pleasant St., Millis, MA 02054 Phone: 508-397-2468 (cell), 508-376-9072 (home) Email: craig@burket.net Web: http://www.burket.net/craig LinkedIn: http://www.linkedin.com/in/craigburket Long version. Last updated: 10/21/2014 SUMMARY 28 years of successful Software Development experience, including 10 years as an independent provider of Software Engineering services, in all phases of the Software Development Life-Cycle (SDLC): gathering & defining requirements, architecting, designing, implementing, refactoring, customizing, integrating, maintaining, enhancing, porting, testing, documenting, presenting, demo-ing and supporting application software for financial analysis, web applications, websites, content management, electronic publishing and document conversion, including: Working with stakeholders in IT- and application-development projects to converge on requirements, architectures and designs. Writing requirements, functional & GUI specs, architectural, high-level & detailed design (OOD) specs, project plans, time estimates, test plans and deployment plans. Prototyping, implementing, testing (unit, regression, integration, system, security, usability, performance, load, stress, etc.), and deploying new products, features, enhancements and functionality. Reporting, assessing, characterizing, diagnosing, fixing and documenting bugs. Leading reviews of requirements, project plans & schedules, design specs, code, usability, documentation and bugs. Writing configuration guides, developer guides and user-documentation for troubleshooting, maintaining and porting software applications and web applications. Improving the portability of applications, content, documents and structured/unstructured data between operating systems, runtime environments, databases, browsers and content management repositories. PROFESSIONAL EXPERIENCE MEKETA INVESTMENT GROUP, INC., Westwood, MA, MeketaGroup.com An investment advisory company. 4/2012 to 3/2014 Title: Applications Developer Designed, implemented, tested and documented new features, enhancements, bug-fixes and refactoring in a financial analysis application using a client-server architecture, SOA, C#, MS Winforms, Telerik GUI controls, WCF (using IIS), SQL Server, SharePoint 2010 and TFS: Screens for uploading (i.e., scanning, parsing, validating and saving to a SQL database) data from user-supplied Excel spreadsheets, and then interactively editing the uploaded data, including: Market values and performance returns (e.g., month-to-date and peer universes) Hedge fund characteristics for several types of hedge funds: Event Driven, Fixed Income, Fund of Funds, Global Macro and Long/Short Equity. Screens for viewing and editing characteristics of financial holdings (portfolios, securities and fixed-income assets). An editor for creating and managing “script” objects that are used for generating reports (internal and client-facing). CRAIG LEE BURKET Automated generation of Word and PDF documents from a set of template Word documents in a SharePoint 2010 Document Library; programmatically inserting the following into the generated Word documents, according to specifications that users view/edit/save on a screen in the GUI: Values from a SQL Server database, via custom Word Document Properties Dynamically-built Word tables at locations specified in the Word template documents using Bookmarks. Default values for Trade Date, Settlement Date, Foreign Exchange Trade Date and Foreign Exchange Settlement date for particular cash-flow transactions. An interactive editor for (2 types of) hierarchies of aggregate investment portfolios and their characteristics: Automated calculation of certain characteristics for equities and fixed-income assets: Phase 2: replaced the Phase 1 implementation (see below) with a new set of classes, services and support methods, in C#. Phase 1: created an SSIS package containing Script Components that call methods in a custom assembly; the package then calls OLE DB Commands to insert/update/delete rows in particular database tables based on output from the Script Components. The package also uses Precedence Constraints to implement conditional execution of Data Flow Tasks. An enhancement for sorting portfolios within the hierarchy, using the Strategy design pattern. Added drag-and-drop functionality within and between panels on the hierarchy editor’s screens. Implemented: Insertion, modification (update) and deletion of portfolio hierarchies in the database. New SQL stored procedures and user-defined functions Unit-test methods Drew up a prioritized list of proposed enhancements. Wrote: Requirements specs for new/changed functionality, based on input/feedback from users Design specs for new/changed classes and methods Test plans (as Excel spreadsheets) defining tests and their expected results for both unit-, regression- and performance-testing. In Team Foundation Server, added and modified Tasks (with estimates) and Bugs for existing User Stories. WHISTLING FROG SOFTWARE, Millis, MA An independent provider of Software Engineering services. 8/2010 to 4/2012 Client: Public Consulting Group, Boston, MA, PublicConsultingGroup.com Role: Consulting Web Applications Developer Developed major enhancements to 2 client-facing web applications (using ASP.NET, VB.NET, .NET Framework, IIS, SQL Server 2008, SQL Server Management Studio 2008, Visual Studio 2010, TFS and SharePoint 2010) for the following business processes: 1. Reviewing and analyzing Medicaid claims: Added front-end GUI features and business logic (using HTML, CSS and MS Silverlight) and back-end database structures (SQL stored procedures, UDFs, views, tables and scripts). 2. Tracking Medicaid appeals: Added a set of new web pages and their menu items. Designed and implemented the GUIcontrols, underlying business logic and database structures needed by these new pages. Wrote a detailed list of tasks and estimates for developing this project. Gave demos (via Webex and conference call) of the new functionality to PCG’s client for this web application. CRAIG LEE BURKET Upgraded this web application from using .NET Framework v2.0 to v4.0. Migrated its source code from CVS to TFS. Client: North Cambridge Family Opera, Cambridge, MA, FamilyOpera.org 7/2010 Role: Consulting Web Developer Designed and implemented a scheme for “cutting up” DVD contents (of opera performances) into many small mp3 files, uploading those files to YouTube with appropriate metadata and linking to those videos from new pages on the website. DECISION RESOURCES, Waltham, MA, DecisionResources.com A provider of business analytics and market research for the pharmaceutical industry. 1/2007 to 6/2010 Title: Applications Developer Developed a SharePoint 2010 sequential workflow (in VB.NET, using Visual Studio 2008) that operates on document sets. Wrote requirements and design specs for this workflow. Added infrastructure for this workflow in SharePoint 2010 including a new site, document library, custom list, custom Content Type, and site columns. Developed a SharePoint 2007 state-machine workflow (in C#, using Visual Studio 2008). Developed a prototype SharePoint 2007 workflow using SharePoint Designer. Designed and implemented the DecisionBase 2010 product. Upgraded an instance of Stellent Content Server v7.5.2 to Oracle UCM 10gR3. Designed and implemented a set of Perl scripts which: Read the contents of tables in input MS Word documents and use their data to sort the contents of the input documents and create new tables in an output Word document. Extract ranges of cells from an Excel spreadsheet and convert them to tables in an output Word document. Aggregate tables from input Word documents and inserts them into a copy of a template Word document. Generate a Stellent BatchLoader script, assigning appropriate metadata values to each file based on its location in the given file-system hierarchy. Used this to batch-load a hierarchy of legacy documents into a Stellent Content Server repository. Enhanced, maintained, debugged 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 to extract date-of-first-access for given classes of content items by given subscribers. Developed the DecisionBase 2009 product. Wrote a Stellent BatchBuilder mapping file that uses IdocScript to assign custom metadata values based on the filename of each Content Item being batch-loaded. Developed an XSLT transform that reads an Excel spreadsheet (saved in SpreadsheetML) and outputs SQL code for loading the spreadsheet’s data into a specified SQL Server database. Extended the schema of this database. Wrote and maintained design specifications for proposed enhancements to the DecisionBase 2008 product. Set up development and staging environments for DecisionBase 2008 and implemented one of these proposed enhancements: a “Drug Profiles” page (using ASP.NET and C#). CRAIG LEE BURKET Installed and configured an instance of MS SharePoint Server 2007. Developed and deployed a hierarchical SharePoint site collection representing the company’s departments and offices. Conducted requirements-gathering interviews and wrote a requirements specification, a features matrix and an executive summary presentation for a proposed enterprise scheduling and resource-allocation utility to be developed and used in-house. Developed 2 Oracle UCM (formerly Stellent Content Server) criteria workflows (each with a hierarchy of Contribution Folders) for the in-house Editorial Department, 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 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 An independent provider of Software Engineering services. 8/2006 to 12/2006 Client: Decision Resources, Waltham, MA Role: Consulting Web Application Developer 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 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 prototype of the product using HTML, CSS and JavaScript. Set up and maintained Subversion as the source-control system used 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 A provider of credit ratings for bonds and other financial instruments. 8/2005 to 8/2006 CRAIG LEE BURKET Title: Software Engineer Enhanced and maintained a Java-based Stellent Content Server 7.1 (SCS) repository, which: Is integrated with a records-management application (MDY FileSurf). Has an extensively customized GUI based on the Stellent Folders component. Planned, scheduled and executed the migration of this SCS repository from using local storage to using Network-Attached Storage (NAS). Diagnosed and fixed bugs in the workflow, GUI and online-help subsystems, and the synchronization between the Stellent and FileSurf databases, using Java, IdocScript and SQL. 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” (deployments) 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 about 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 Content Server repository. Wrote training documentation on how to use these tools to generate and customize these reports. Collected and analyzed performance-related data about SCS’s hardware, networks, databases and customized code, in order to identify bottlenecks and suggest performance improvements. Implemented and assessed the results of these performance improvements. Used MS Web Application Stress Tool. Diagnosed problems reported by internal users to differentiate between those due to user-error and those which represent bugs in the SCS/Filesurf databases and/or source code. Set up an SCS repository for integration with Mercury performance-testing tools. Wrote documentation for developers (as a set of wiki pages) about Moody’s content-management (SCS) and records-management (FileSurf) repositories. WHISTLING FROG SOFTWARE, Millis, MA An independent provider of Software Engineering services. 2002 to 2005 Client: Frontline Logic, Russiaville, IN, FrontlineLogic.com Project sponsor: CGI Group, Inc. (formerly CGI-AMS) 7/2005 to 8/2005 Role: Consulting Software Developer Enhanced the Java-based ExtendedSearch component for Stellent Content Server that I developed for this client in 2003 (see below). The enhancements are to: Support conjunctions of clauses in the given query, Handle metadata values in the query that contain spaces and/or HTML-encoded characters Improve performance by dynamically constructing SQL queries that return the documents that match all the clauses in the query. Project sponsor: State of Alaska Department of Natural Resources 5/2005 to 6/2005 Role: Consulting Software Engineer Analyzed the Java source code and behavior of a Stellent Content Server (SCS) component written by a previous consultant, in order to write a Developer’s Guide for them that describes: How to use Stellent’s Component Wizard and Component Manager to create, maintain, package and install Content Server components in general and the client’s component in particular. The purpose, actions and usage of each of the component’s resources, services, templates, queries and custom database tables. Techniques and resources for troubleshooting and debugging SCS components. CRAIG LEE BURKET Helped the client (via phone and Webex) to diagnose and fix a bug in their component’s IdocScript. Project sponsor: Carrier Corp. 3/2005 to 7/2005 Role: Consulting Software Engineer Advised the decision-makers in Carrier’s IT Department and helped them reach agreement on functional requirements, buy-versus-build decisions and a project plan for upgrading their Stellent Content Server (SCS) repository from version 4.6 to 7.1: Proposed a range of options for functionality and high-level design to meet their requirements. Tested and evaluated utilities, web applications and SCS 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: Proof-of-concept customizations (using ASP 3, JSP, IdocScript, and SQL) of the above tools and components to address: Interactively querying/updating values of a metadata field across a set of content items, Managing relationships between documents Restricting visibility of doc types based on Accounts Restricting visibility of metadata fields based on doc type The use of SCS’s Metadata Schema Mapping feature to create a dependent choice list that depends on values of SCS’s dDocType; The use of SCS’s BatchLoader utility for updating metadata values. Installed and configured the Tomcat 5 JSP server and customized SCS’s database by adding custom tables (using SQL Server Enterprise Manager). Wrote detailed instructions for Carrier’s IT staff on how to implement specific sub-tasks of the project. Mentored Carrier’s IT staff in how to use SCS subsystems (Configuration Manager, Repository Manager, User Admin, BatchLoader), database tools and Adobe Acrobat to: Configure users, accounts, doctypes, metadata fields, option lists and dependent choice lists for an SCS repository. Update metadata values using BatchLoader scripts, and diagnose/fix any failed updates. Update/rebuild the Verity full-text search collection and resolve problems with this process. Optimize and “linearize” the PDF files in their SCS repository. Developed test cases and test plans for the above enhancements. Gave an overview and demo (via Webex) of SCS’s Workflow functionality to engineers and mangers from some of Carrier’s business units. Project sponsor: Moody’s Investors Service 12/2004 to 2/2005 Role: Consulting Software Developer Designed and implemented (in Java) a Stellent Content Server (SCS) component for publishing documents from an SCS 7.1 repository to Moodys.com. Implemented this as a custom IdcService that uses the javax.xml.soap classes (from the Java Web Services Developer Pack) in order to: Construct a SOAP message containing the given document’s metadata and base-64-encoded content. Send the SOAP message via HTTP to a Web Service. 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 SCS’s standard Content Information web page, and to report its results on a custom SCS web page. CRAIG LEE BURKET Wrote a custom SCS search service (in Java) that is like SCS’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 9/2004 to 12/2004 Role: Consulting Software Developer Customized an instance of Stellent Content Server 7.1.1 (SCS) to enable it to be used as a “back-end content management system” which: Replaces a UNIX file system as the repository for content that is published to Moodys.com. Provides a set of Web Service operations that are called from libraries in the middle tier. Accomplished the following tasks: Captured and refined requirements and proposed high-level design alternatives for meeting those requirements. Defined project milestones, dependencies, risks, deliverables and a schedule. Installed SCS, Dynamic Converter and the SOAP and Folders components on a Windows Server 2003 machine, using SQL Server as the back-end database, and IIS 6 as the webserver. Designed and implemented a metadata schema for this SCS repository. Wrote a detailed design spec, test plan, installation/configuration guide and developer’s guide for the new system. Implemented and tested an SCS component (in Java, using Eclipse) that provides custom SCS services that implement the above Web Service operations. Generated a WSDL file for those SCS services to make them callable (via SOAP) as a Web Service. Developed a set of test-drivers (using Stellent’s Java- and VB-based Soap Clients) for unittesting and regression-testing the new Web Service operations. Conducted weekly code reviews of the new Web Service (and its underlying custom SCS services, sub-services, handlers, queries and supporting Java classes) with the Moody’s engineers who will maintain the system. Client: Millis Democratic Town Committee, Millis, MA, MillisDems.org 10/2004 to 11/2004 Role: Consulting Web Developer 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 8/2004 Role: Consulting Software Developer Invented a demo for an integration of a content management system (empolis SiGMaLink) and Adobe FrameMaker: Created a set of FrameMaker native Documents and Books Scripted the demo Configured the SiGMaLink repository and its underlying Oracle database by adding users, groups, workflows, metadata schemas/instances, relational query masks and hooks. Participated in the presentation of the demo. CRAIG LEE BURKET 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 HTML 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 7/2004 Role: Consulting Web Developer Implemented Dreamweaver templates, HTML pages, CSS styles, and JavaScript-driven popup menus for a new web site, conforming to a given graphical design. Client: Media Entities, Inc., Medford, MA, MediaEntities.com 1/2004 to 7/2004 Role: Consulting Software Developer Designed and implemented sets of: XML DTDs, XML test files and MS Word templates Master pages in Quark XPress document templates Mappings between XML elements and named styles in the Word and Quark templates The above files/objects are used by the Media Entities “XML ToolWorks” application to automate the process of flowing content between MS Word and Quark documents. The dataflow is: Word (XML ToolWorks Import/Export) valid XML (XML ToolWorks Import/Export) Quark. Tested this on Windows 2000, XP, and MacOS 9. Extracted DocBook-compliant XML from given 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 method to each of the files in a given directory that are selected by a caller-supplied filter method. Client: empolis North America, Inc., Burlington, MA, empolis-na.com 9/2003 to 12/2003 Role: Consulting Software Developer Customized the empolis SiGMaLink content management system for use in a medical reference publishing (MRP) 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 those 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 within the MRP application. Made the methods of the above classes callable from within Oracle 9i as stored procedures. Wrote a class (based on the Façade design pattern) that provides an interface for calling the stored procedures from JSP via java.sql. Wrote a SiGMaLink request hook that sends email notifications (using javax.mail) when an information object is checked in. CRAIG LEE BURKET Installed and configured Oracle 9i and SiGMaLink on Windows XP and Windows 2000. Client: Frontline Logic, Russiaville, IN, FrontlineLogic.com Project sponsor: Boston Stellent Users Group 9/2003 Role: Presenter Gave a presentation and demo of the ExtendedSearch component that I designed and implemented (see below). Client: Binary Minds, Inc., Medway, MA, BinaryMinds.com 8/2003 Role: Consulting Cold Fusion Developer 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 8/2003 Role: Consulting XSLT/LDAP Developer Project sponsor: Colliers International -- Phase 2 (see Phase 1 below): Modified the client’s Novell DirXML drivers to recognize additional attributes of the imported entries. Enhanced the XSLT transforms to: Set the password of a newly created object to a placeholder value. 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: Frontline Logic, Russiaville, IN, FrontlineLogic.com Project sponsor: Raytheon Co., Waltham, MA 7/2003 Role: Consulting Software Engineer 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. Proposed alternative approaches for enabling developers and content authors to use the Stellent applications to build and maintain Raytheon’s websites. Client: Molecular.com, Watertown, MA, molecular.com 5/2003 to 7/2003 Project sponsor: Genzyme Corp. Role: Consulting Software Engineer Advised a team of web developers on how to use Stellent Content Server and Stellent Content Publisher to construct a public-facing website for their client, Genzyme. Facilitated technical communication in meetings between developers and managers from Molecular.com and Genzyme. CRAIG LEE BURKET Defined high-level milestones and implementation tasks for the project and created a proof-ofconcept 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 Project sponsor: CGI Group, Inc. (formerly CGI-AMS) 4/2003 to 6/2003 Role: Consulting Software Developer Designed and implemented (in Java) 2 custom components in Stellent Content Server that use ServiceHandlers to define custom actions that are inserted into standard Stellent services: 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). 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 3/2003 to 4/2003 Role: Consulting Software Developer Fixed bugs and added enhancements to customized instances of Stellent Content Server (SCS) and Stellent Content Publisher (SCP) where SCP is used to generate a public-facing website from a set of files (native documents, JavaScript, CSS, HCSF, HCSP and SCP Project) stored in an SCS repository. Specified requirements, design options, implementation tasks and time estimates for a project that uses SCP and SCS to construct a website with complex navigational controls. Integrated an SCS repository with an LDAP source (Sun ONE Directory Server) for user authentication and authorization. Configured SCS’s default LDAP Provider so that: A user’s membership in specific groups in the LDAP directory results in the assignment of the appropriate Roles and Accounts (parts of SCS’s security model) to that user when they log in to SCS. Specific LDAP user attributes are mapped to user metadata fields in SCS. Client: Quotient, Inc., Columbia, MD, quotient-inc.com 2/2003 Role: Consulting Software Engineer 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 (Interwoven). Client: Alliance Consulting, Framingham, MA, alliance-consulting.com 11/2002 to 2/2003 Role: Consulting XSLT/LDAP Developer Project sponsor: Colliers International – Phase 1 Wrote XSLT transforms for an LDAP server implementation that uses Novell’s eDirectory, DirXML and XDS DTD. The XSLT transforms implement 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 and/or inconsistent attribute values, and illegal operations) as the name-and-address-book entries (and changes to them) are pulled into the central LDAP repository from instances of MS Exchange, Active Directory, and Lotus Notes/Domino. Used Novell ConsoleOne along with an LDAP browser to test and debug the XSLT code. CRAIG LEE BURKET Client: W.A. Wilde Co., Holliston, MA, wilde.com 9/2002 to 11/2002 Role: Consulting Web Application Developer Developed a web application (using ASP.NET, VB.NET, ADO.NET and COM wrappers) that is a frontend 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 VB 6 SQL database tables. Wrote client-side JavaScript functions to validate zip codes and phone numbers entered in HTML forms. Gave presentations and tutorials to the CIO and IT staff. about: Stellent Content Server 6.1, including security models, workflows, the Folders component, WebDAV support and running within the Tomcat application server. .NET technologies for web application development. STELLENT, INC., Acton and Marlborough, MA 7/1999 to 8/2002 A provider of web-based content management and data-conversion software, headquartered in Eden Prairie, MN. Formerly IntraNet Solutions, now part of Oracle Corp. Title: Senior Software Development Engineer Developed the Stellent Content Categorizer (SCC) product, which is a set of Java adapter classes that enables the customer to integrate a Stellent Content Server (SCS) repository with content/document categorization/classification engines from several 3rd-party vendors, e.g. Autonomy. Designed and implemented a package that extracts a native taxonomy from a 3rd-party categorization engine and converts it into a “navigable taxonomy”, i.e., a dynamically-generated hierarchy of web pages, to enable navigation of the taxonomy in Stellent Content Server (SCS). Developed an appletbased GUI for configuring and running this process. Enhanced SCS’s browser-based Check-In and Update pages so that SCC can be invoked to: Suggest initial metadata values when a Content Item is checked in to an SCS repository, and Update the metadata values of a Content Item in the repository Enhanced SCS’s search-results pages so that for each Content Item found, each of its assigned categories is displayed as a “taxonomy vector” (a breadcrumbs-style path), where each vector element is a link to the web page for that category in one of the “navigable taxonomies”. Wrote XSLT that transforms XML from the Flexiondoc and SearchML schemas of Stellent’s “Outside In XML Export” utility into the XML schema used by SCC. Used Apache's Xalan XSL processor and Xerces XML parser, both called via Apache's Xalan-Java implementation of the Transformation API for XML (TrAX). Designed and implemented (in C++) a utility for merging PDF Forms Data Files (FDF) into a PDF template file and outputting the result as either PDF or Postscript. Used Adobe’s FDF Toolkit, Acrobat Core API, PDFEdit API and PDF Library SDK. As part of a small (4-6 member) development team, developed the Stellent Report Parser (SRP) product. SRP is a multi-threaded Java application that: Takes database reports (plain text files) from 3rd-party applications (e.g., Crystal Reports) as input, and Extracts metadata from these reports according to user-specified rules, and Splits each report into a set of Content Items of specified granularity, and Optionally converts these Content Items to either PDF, HTML or XML+XSL, and CRAIG LEE BURKET Checks in the results to an SCS repository. Specified, designed (using UML class diagrams) and implemented the Stellent Report Parser application. Added a “pass-through” mode in which the input files (and their extracted metadata) are checked in to the SCS repository without any format conversion. Developed (using java.awt) an interactive editor for the persistent objects (“Blueprints”) that specify how Stellent Report Parser processes particular types of input reports. Tested the SRP 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 SRP’s Java packages, interfaces and classes. Wrote a utility in VB 6 that mediates inter-process communication between SCS and a recordsmanagement application (ForeMost Enterprise). Designed and implemented a “personal navigation environment” for SCS, including user selfregistration and authentication. Used ASP 3, client-side JavaScript and CSS. Developed a web-based e-commerce product ("Softgoods") that uses ASP 3, JavaScript, Jscript, HTTP, 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 (KM) World 2001 Microsoft Web Services Summit IEEE/ACM Bioinformatics Lecture Series Inxight webinars INTERLEAF, INC., Waltham, MA 8/1989 to 5/1999 A provider of software for complex technical publishing and document/content management. Title: Member of Technical Staff (Development Engineer) Integrated a prototype implementation for the “Interleaf 7 XML” product (written in Common 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 Common LISP interpreter. Implemented the use of vendor-supplied Motif/X11 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 XML-DTD-compliant “structured authoring” of XML documents using an integration between Interleaf 6 and Microstar's Near & Far Designer application. Exhibited this prototype at the "XML '98" conference in Seattle, WA. 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 file-formats including RTF, WordPerfect, CGM, IGES, TIFF, JPEG and 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. CRAIG LEE BURKET Enhanced Interleaf’s RTF import/export filters (in C) to handle Japanese text and fonts. Wrote scopeof-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 C Shell scripts, Bourne 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 a set of utilities (using lex, awk and Bourne Shell scripts) 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: DEC UNIX (OSF/1) on DEC AXP. Motorola UNIX SystemV/88 R4, using the 88open Binary Compatibility Standard. CMW+/386 (secure SCO UNIX System V/386). Improved the performance of the installation tools (in C Shell script and Common LISP) for Interleaf 5 and 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 (formerly Printerleaf) files. Added enhancements (using Common LISP and C) to Interleaf 5 and TPS 4 in order to support WVP, which was: Demonstrated at a Seybold show in 1992. 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 Common LISP; An online help subsystem for use in Layered Applications. Persistent storage of Common 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 Common 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 A provider of electronic publishing software and typesetting applications. Title: Software Engineer 7/1988 to 8/1989 CRAIG LEE BURKET Continued the development (in C) of the electronic publishing applications acquired from Texet Corporation (see below): Ported these applications to SunOS 4.0 on SPARC and mc68030 Customized SCCS for managing their concurrent development by a small team of programmers and testers. TEXET CORPORATION, Arlington, MA A pioneer in WYSIWYG editing of structured documents. 3/1986 to 7/1988 Title: Software Engineer Designed and implemented enhancements to a “structured authoring” product based on SGML: Tools for interactive scaling of text embedded in vector graphics. A user interface for converting units of linear measure A subsystem that enables localization (L10N) of an application's user-visible text for internationalization (I18N). EDUCATION Training Course: Autonomy Essentials, autonomy.com Automated document categorization using Bayesian inference. Northeastern University, Framingham, MA Artificial Intelligence engineering. Graduate courses: Neural Networks and Fuzzy Logic Knowledge-Base Design using Prolog Harvard University Extension School, Cambridge, MA Mathematics and Software Engineering. Graduate courses: Advanced Object-Oriented Design and Programming in C++ Advanced Discrete Mathematics Developing Portable Programs in C Building Graphical User Interfaces in X11 and Motif Linear Algebra 2002 1994 to 1995 1990 to 1993 Certificate in Computer Science, University of Massachusetts, Boston, MA 1989 Boston University Metropolitan College, Boston, MA Course: Programming in Pascal 1982 Bachelor of Music with Honors, New England Conservatory of Music, Boston, MA 1978 AFFILIATIONS Association for Computing Machinery, Greater Boston Chapter, gbcacm.org Electronic Frontier Foundation, eff.org