<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE resume PUBLIC "-//Sean Kelly//DTD Resume 1.5.1//EN"
  "http://xmlresume.sourceforge.net/dtd/resume.dtd">

<!--
resume.xml
-->
<resume id="matthew-j-benson-usa-1975">
  <header>
    <name id="matt.benson">
      <firstname>Matthew</firstname>
      <middlenames>Jason</middlenames>
      <surname>Benson</surname>
    </name>
    <contact>
      <email>mbenson@apache.org</email>
      <instantMessage service="aim">gudnabrsam</instantMessage>
    </contact>
  </header>

  <objective>
    <para>My ideal position is one in which my talents are used to develop,
or develop build systems for, useful and/or interesting software.
</para>
  </objective>

  <skillarea>
    <title>General Skills</title>
    <skillset>
      <skill>Strong written communications</skill>
      <skill>Ability to learn quickly and independently</skill>
      <skill>Always willing to help peers</skill>
    </skillset>
  </skillarea>

  <skillarea>
    <title>Computer Skills</title>
    <skillset>
      <title>Programming Languages</title>
      <skill>Java</skill>
      <skill>COBOL</skill>
      <skill>SQL</skill>
      <skill>Unix shell scripts</skill>
      <skill>Windows/DOS command scripts aka batch files</skill>
      <skill>Javascript</skill>
      <skill>PL-SQL</skill>
      <skill>Visual Basic under duress</skill>
    </skillset>
    <skillset>
      <title>Java/J2EE</title>
      <skill>Apache Ant</skill>
      <skill>Apache Commons</skill>
      <skill>ANTLR 2.x</skill>
      <skill>Morph</skill>
      <skill>Spring framework</skill>
      <skill>Spring Web Flow</skill>
      <skill>Hibernate ORM</skill>
      <skill>JSP</skill>
      <skill>JSTL</skill>
      <skill>JSP custom tags</skill>
      <skill>Freemarker</skill>
      <skill>Dozer</skill>
      <skill>JUnit</skill>
      <skill>DWR AJAX library</skill>
      <skill>iText PDF library</skill>
      <skill>Struts 1</skill>
      <skill>Threading</skill>
      <skill>Servlets</skill>
      <skill>JDBC</skill>
      <skill>Portlets</skill>
      <skill>RMI</skill>
      <skill>JMS</skill>
      <skill>Swing</skill>
    </skillset>
    <skillset>
      <title>DBMS</title>
      <skill>Oracle</skill>
      <skill>DB2</skill>
      <skill>Pervasive/Btrieve v6.0-8.5</skill>
    </skillset>
    <skillset>
      <title>Data Formats</title>
      <skill>HP-PCL</skill>
      <skill>XML</skill>
      <skill>HTML</skill>
      <skill>UML</skill>
    </skillset>
    <skillset>
      <title>Operating Environments</title>
      <skill>Windows NT/2000/XP/2003</skill>
      <skill>OS X</skill>
      <skill>Solaris</skill>
      <skill>Linux</skill>
      <skill>Cygwin</skill>
      <skill>MS-DOS</skill>
      <skill>Novell Netware 3.x-4.x</skill>
    </skillset>
    <skillset>
      <title>Software</title>
      <skill>Apache Ant</skill>
      <skill>CVS (user/admin)</skill>
      <skill>Subversion (user/some admin)</skill>
      <skill>PVCS</skill>
      <skill>PGP/GnuPG</skill>
      <skill>ghostScript</skill>
      <skill>ghostPcl</skill>
      <skill>Image Alchemy</skill>
      <skill>Bugzilla (user/admin)</skill>
      <skill>JIRA (user/admin)</skill>
      <skill>ViewVC (formerly ViewCVS - user/admin)</skill>
      <skill>LifePro</skill>
      <skill>MicroSoft Office</skill>
      <skill>Crystal Reports 6.x</skill>
    </skillset>
    <skillset>
      <title>Miscellaneous</title>
      <skill>RTFM</skill>
      <skill>STFW</skill>
    </skillset>
  </skillarea>

  <interests>
    <title>Interests</title>
    <interest>
      <title>Software Build Systems</title>
    </interest>
    <interest>
      <title>Language Parsing / Domain-specific Languages</title>
    </interest>
    <interest>
      <title>Integration of Enterprise and Legacy Systems</title>
    </interest>
    <interest>
      <title>Imaging</title>
    </interest>
    <interest>
      <title>Document Generation</title>
    </interest>
  </interests>

  <history>

    <job>

      <jobtitle>Senior Program Analyst - Internet</jobtitle>

      <period>
        <from>
          <date>
            <month>October</month>
            <day>03</day>
            <year>2005</year>
          </date>
        </from>
        <to><present /></to>
      </period>

      <employer>Permanent General Assurance Corporation</employer>

      <projects>
        <project>Developed a lightweight Java bean configuration package
similar to an IOC container, but syntactically a compromise between Java and
XML, motivated by the verbosity of the Spring framework's inversion of control
(IOC) container.  The ANTLR parser generator tool was used to develop the
parser for the domain-specific language, whose syntax was focused on brevity.
Some features included transparent collection conversion from generic or typed
array syntax, best-match method invocation, prototype and parent beans a la
Spring IOC, and a system of mapping objects via hierarchical keys to find,
given e.g. an ordered set of properties, the best match in a set of configured
objects.</project>
        <project>Developed an abstract Java library for working with flat file
data structures in a pseudo-OO fashion, including a DSL to define flat file
structures in a terse descendant of COBOL copybook syntax (Permanent General has
made this library available via software grant to the Apache Commons sandbox, as the
<link href="http://commons.apache.org/sandbox/flatfile/">flatfile</link> component.
        </project>
        <project>Development and maintenance of online insurance quote tools
using Struts 1, Spring IOC/MVC/Web Flow, Hibernate, AJAX via DWR, Freemarker and JSP. 
        </project>
        <project>CVSNT administration; implemented CVSNT email notification
akin to that available for Unix CVS.</project>
        <project>JIRA administration.</project>
      </projects>
    </job>

    <job>

      <jobtitle>Senior Application Developer</jobtitle>

      <period>
        <from>
          <date>
            <month>October</month>
            <day>27</day>
            <year>1998</year>
          </date>
        </from>
        <to>
          <date>
            <month>September</month>
            <day>30</day>
            <year>2005</year>
          </date>
        </to>
      </period>

      <employer>CNA Life/Valley Forge Life</employer>
      <projects>
        <project>Developed a Spring Web MVC viewer for an Oracle database.
Hibernate Object-Relational mapping was leveraged to resolve the database
structure in terms of programming objects, and was supplemented by considerable
amounts of custom SQL due to the complexity of the legacy data structure.
Careful study of the Spring framework allowed greater flexibility with a smaller
codebase than the company's prior Spring/Hibernate project.</project>
        <project>Primary designer/developer of a fast, flexible COBOL
utility for extracting hundreds of thousands of policies' data from a (LifePro)
Btrieve database in scant few hours.  A particularly interesting component of
this project:  the COBOL-written expression parser that evaluated boolean
expressions (including relational operators and grouping), compiling these from
text to procedure pointer calls at runtime.</project>
        <project>Implemented an Ant-based build system for Net Express
COBOL applications, including awareness of copybooks.</project>
        <project>Used MS Word macros to implement a seamless user experience
uploading Word documents via servlets to JMS queues.  Created a servlet-based
JMS queue browser/editor as a development aid.</project>
        <project>Developed a Java-based reporting library to write arbitrary
SQL resultset data to HTML and PDF formats, backed by the iText library.
        </project>
        <project>Varied reporting (ad-hoc and otherwise) against Oracle
and Btrieve databases.</project>
        <project>Ongoing enhancements and modifications to a legacy PCL
policy generation system.</project>
      </projects>
    </job>
  </history>

  <memberships>
    <title>Open Source Projects</title>
    <membership>
      <title>Apache Ant Project Management Committee</title>
      <organization>Apache Software Foundation</organization>
      <description>
	<para>From
<link href="http://www.apache.org/foundation/how-it-works.html#pmc-members">
How the ASF works</link>:
A PMC member is a developer or a committer that was elected due to merit for
the evolution of the project and demonstration of commitment. They have write
access to the code repository, an apache.org mail address, the right to vote
for the community-related decisions and the right to propose an active user for
committership. The PMC as a whole is the entity that controls the project,
nobody else.</para>
      </description>
      <period>
        <from>
          <date>
            <dayofmonth>16</dayofmonth>
            <month>August</month>
            <year>2004</year>
          </date>
        </from>
        <to>
          <present />
        </to>
      </period>
    </membership>

    <membership>
      <title>Apache Ant Committer</title>
      <organization>Apache Software Foundation</organization>
      <description>
	<para>From
<link href="http://www.apache.org/foundation/how-it-works.html#committers">
How the ASF works</link>:
A committer is a developer that was given write access to the code repository
and has a signed Contributor License Agreement (CLA) on file. They have an
apache.org mail address. Not needing to depend on other people for the patches,
they are actually making short-term decisions for the project.</para>
      </description>
      <period>
        <from>
          <date>
            <dayofmonth>10</dayofmonth>
            <month>February</month>
            <year>2004</year>
          </date>
        </from>
        <to>
          <date>
            <dayofmonth>15</dayofmonth>
            <month>August</month>
            <year>2004</year>
          </date>
        </to>
      </period>
    </membership>

    <membership>
      <title>Apache Jakarta Committer</title>
      <organization>Apache Software Foundation</organization>
      <description>
        <para>The Jakarta project houses a number of Java subprojects.</para>
      </description>
      <period>
        <from>
          <date>
            <year>2007</year>
            <month>January</month>
          </date>
        </from>
        <to><present /></to>
      </period>
    </membership>

    <membership>
      <title>Apache Commons Project Management Committee</title>
      <organization>Apache Software Foundation</organization>
      <description>
        <para>Set of independent and reusable Java libraries, formerly Apache Jakarta Commons.
        </para>
      </description>
      <period>
        <from>
          <date>
            <year>2007</year>
            <month>June</month>
          </date>
        </from>
        <to><present /></to>
      </period>
    </membership>

    <membership>
      <title>Foundation Member</title>
      <organization>Apache Software Foundation</organization>
      <description>
	<para>From
<link href="http://www.apache.org/foundation/how-it-works.html#asf-members">
How the ASF works</link>: An ASF member is a person who was nominated by current
members and elected due to merit for the evolution and progress of the foundation.
        </para>
      </description>
      <period>
        <from>
          <date>
            <year>2007</year>
            <month>December</month>
          </date>
        </from>
        <to><present /></to>
      </period>
    </membership>

    <membership>
      <title>Travel Assistance Committee Member</title>
      <organization>Apache Software Foundation</organization>
      <description>
	<para>From
<link href="http://www.apache.org/travel/">ASF Travel Assistance</link>:
The Travel Assistance Committee exists to help those that would like to
attend ApacheCon events, but are unable to do so for financial reasons.
        </para>
      </description>
      <period>
        <from>
          <date>
            <year>2008</year>
            <month>September</month>
          </date>
        </from>
        <to><present /></to>
      </period>
    </membership>

    <membership>
      <title>Developer/Release Manager</title>
      <organization>
        <link href="http://morph.sourceforge.net">
          Morph object mapping framework
        </link>
      </organization>
      <description>
        <para>Bug fixes and functionality enhancements.
        </para>
      </description>
      <period>
        <from>
          <date>
            <year>2007</year>
            <month>January</month>
          </date>
        </from>
        <to><present /></to>
      </period>
    </membership>

    <membership>
      <title>Project Administrator</title>
      <organization>
        <link href="http://www.jext.org">Jext Java Text Editor</link>
      </organization>
      <description>
	<para>Bug fixes and enhancements to the Swing user interface,
core architecture and shipped plugins.</para>
      </description>
      <period>
        <from>
          <date>
            <year>2000</year>
          </date>
        </from>
        <to>
          <date>
            <year>2003</year>
          </date>
        </to>
      </period>
    </membership>

    <membership>
      <title>Contributor</title>
      <organization>iText Java-PDF library</organization>
      <description>
        <para><link href="http://www.lowagie.com/iText">iText</link> is perhaps
the most widely-used Java library for creating documents in Adobe's
Portable Document Format.</para>
      </description>
    </membership>

  </memberships>

  <awards>
    <title>Certifications</title>
    <award>
      <title>Sun Certified Developer for the Java 2 Platform</title>
      <date>
        <month>April</month>
        <dayofmonth>27</dayofmonth>
        <year>2001</year>
      </date>
    </award>
    <award>
      <title>Sun Certified Programmer for the Java 2 Platform</title>
      <date>
        <month>October</month>
        <dayofmonth>31</dayofmonth>
        <year>2000</year>
      </date>
    </award>
  </awards>

  <academics>
    <degrees>
      <degree>
	<level>Associate of Applied Science</level>
	<major>Business Technology</major>
	<date>
	  <dayofmonth>17</dayofmonth>
	  <month>December</month>
	  <year>1998</year>
	</date>
	<institution>Nashville State Technical Institute</institution>
        <gpa><score>3.575</score></gpa>
        <annotation>Graduated with honors</annotation>
      </degree>

      <degree>
	<level>High School</level>
	<date>
	  <month>June</month>
	  <year>1992</year>
	</date>
	<institution>Hume-Fogg Academic High School</institution>
        <gpa><score>3.2</score></gpa>
        <annotation>Graduated with honors</annotation>
      </degree>
    </degrees>
  </academics>

  <misc>
    <para>I have an agile mind and an insatiable desire to know how and why
systems work.  I tend to be the first person to encounter limitations with a
technology, but as a result have had to become skilled at finding solutions to
such problems.  I never shrink from an intellectual challenge, and take
particular pleasure in making a system surpass its own limitations.</para>
    <para>I am an avid user of open-source software.  I always assume
that I am not the first person to need a tool to accomplish a
particular task, and that a reliable open-source solution probably
exists.  I monitor the user lists of the projects I am most interested in,
which yields the benefit of my having read many questions--and answers.</para>
    <para>Through my continuing interest in open source, I was elected first
as a committer and later to the Project Management Committee of the Apache
Software Foundation's Ant project.  Membership in an Apache project is
attained only as a result of positive impressions made on other project members;
the ASF calls this principle
<link href="http://www.apache.org/foundation/how-it-works.html#meritocracy">
Meritocracy</link>.  In 2007 I was elected as a committer
to Apache Jakarta, and when Apache Commons left the Jakarta umbrella to become
a top-level project of the foundation, I became a member of its founding PMC.
In late 2007, my sustained contribution to the ASF was recognized by granting me
<link href="http://www.apache.org/foundation/how-it-works.html#asf-members">
foundation membership</link>.
    </para>
    <para>My references are available on request.</para>
  </misc>

  <lastModified>
    <date>
      <dayofmonth>06</dayofmonth>
      <month>October</month>
      <year>2008</year>
    </date>
  </lastModified>

</resume>
