My ideal position is quite simply one in which my talents are used to develop, or develop build systems for, useful and/or interesting software.
Strong written communications, Ability to learn quickly and independently, Always willing to help peers.
Java/Java EE: Apache Ant, Apache Commons (various), Bean Validation/Apache BVal, Therian, JBoss Forge, Morph, Jenkins, Spring framework, Hibernate ORM, Android, asm, cglib, javassist, AspectJ, JSF 2/Facelets, MyFaces, MyFaces Extensions Validator, Jackson, PrettyFaces, JUnit 3.x/4.x, Mockito, Spring Web Flow, ANTLR 2.x, Freemarker, JSP, Hamcrest, DWR AJAX library, Drools, iText PDF library, Struts 1.x, Threading/Concurrency, Servlets, JDBC, JMS, Swing.
DBMS: Oracle, DB2, Pervasive/Btrieve v6.0-8.5.
Data Formats: HP-PCL, XML, XHTML, Commons flatfile DSL.
Operating Environments: Microsoft Windows, OS X, Linux, Solaris, Cygwin, MS-DOS, Novell Netware 3.x-4.x.
Software: Apache Ant, Apache Maven, Apache Ivy, Subversion (user/admin), Eclipse, JIRA (user/admin), Jenkins (nee Hudson) CI, Sonatype Nexus (user/admin), git, JBoss Forge, ViewVC (user/admin), CVS (user/admin), Bugzilla (user/admin), PGP/GnuPG, ghostScript, ghostPcl, Image Alchemy, PVCS.
Miscellaneous: RTFM, STFW.
Senior Program Analyst - Internet
Senior Application Developer
CNA Life/Valley Forge Life
October 1998-September 2005
Apache-hosted implementation of JSR-303 Bean Validation. As a result of my contributions to the Bean Validation podling, I was voted by my peers to serve as the PMC chair/VP of the Apache BVal top-level project (TLP).
I am a member of the Bean Validation Expert Group (EG).
Therian is an open source Java object transformation library of my own creation.
Made various improvements to the codebase, including improved recognition of generic types down an object graph based on parent property definitions. Located an error in the RI and TCK regarding the structure of property paths. Developed supplementary Bean Validation provider to implement dynamic manipulation of validation constraints at runtime, potentially keyed to specific points in the object graph. Complemented this extension with a Myfaces Extensions Validator extension to handle the additional complexity imposed by graph-position-sensitive property validation (as a result I am likely the member of the software community with the third most knowledge of the workings of Myfaces Extensions Validator).
Set of independent and reusable Java libraries, formerly Apache Jakarta Commons. Specific expertise in the [lang], [weaver], [proxy], [collections], [jxpath], and [functor] components, as well as the [flatfile] sandbox component.
Java-based project build tool.
During my relatively short experience with JSF, my contributions to Apache MyFaces were of sufficient merit to earn committership to the project.
I volunteered in my capacity as a member of the Apache Incubator PMC to help the DeltaSpike podling's participants learn how to operate an open-source project at the ASF.
From How the ASF works: 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.
From ASF Travel Assistance: The Travel Assistance Committee exists to help those that would like to attend ApacheCon events, but are unable to do so for financial reasons.
I have made a number of contributions to the Forge rapid application development tool, resulting in my nomination for a JBoss Community Recognition Award for 2013. The 1.2.0 release was even named for me: https://issues.jboss.org/browse/FORGE/fixforversion/12320763 . Since this time I have settled in as the primary developer of Forge's Java Parser component, https://github.com/forge/roaster .
During my short experience with JSF, I participated in specification-level enhancements including writing code used in Mojarra (RI) and Apache MyFaces alike. I was also personally invited by the specification lead to interview for a position on Oracle's core JSF development team.
Bug fixes and functionality enhancements.
Overall GPA: 3.575
Overall GPA: 3.2
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 supposed limitations.
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.
It is my belief that many developers, when trying a piece of OSS that gets them 95% to their goal, then encountering some relatively minor issue, give up on the software. I try to take such "bumps in the road" in stride, report the issue, find and contribute the fix if possible, and take satisfaction in the improved product.
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 Meritocracy. 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 foundation membership. I continue to participate in open-source projects wherever they coincide with the needs of my paid work, and/or my intellectual interests.
My references are available on request.
Last modified March 2014.