Work Experience

Senior developer on a team building a suite of applications that solve aircraft-routing-for-maintenance problems given fleeted flight schedules and other constraints at a major commercial airline. 100% at client site.

Advisor and technical lead for a major commercial airline. Took an offshore-developed application intended to deliver timely notifications of flight events to crew via email and/or SMS, and in four weeks time cut its PLOC in half, refactored for greater intention revelation, introduced Ant scripts to build the system reliably, added unit tests for crucial parts of the application, and resolved an issue during beta testing that was causing duplicate notifications to be delivered to crew. 100% at client site.

Senior developer on a team building an Ajax web-based application for collections agents at a mortgage lending division of a major bank, intended to minimize average hold time on collections calls. 100% at client site.

  • July 2007 - March 2009
  • Semantra, Inc., Addison, Texas
  • Agile Technologist

Senior developer on an agile team building a natural-language-based ad hoc reporting and analytics application for non-technical users.

Created online IT skills assessments covering the following subject areas: Java 2 Standard Edition 5; Java Servlets; Struts; Model-View-Controller (MVC) Concepts.

Reviewed skills assessment content in the following subject areas: J2EE Security; Developing, Testing, and Deploying J2EE Applications.

Technical lead on a project to retrofit the ad-hoc presentation layer of a travel reservation/distribution provider's Internet booking engine with the Struts framework and sensible browser behavior when navigating the site using back/forward/refresh buttons.

  • August 2005 - September 2006
  • Zix Corporation, Dallas, Texas
  • Senior Developer

Senior developer on a project to enhance Zix's secure e-mail offerings with "push" delivery capability, limited forwarding, and 128-bit AES encryption.

Senior developer on a project to migrate a two-tier e-Prescribing application to a three-tier .NET architecture.

  • March 2004 - August 2005
  • ThoughtWorks, Chicago, Illinois
  • Application Developer/Consultant

Senior developer on a project to re-architect a clinical enterprise application written in C++ to a J2EE environment. Modified FitNesse to allow file attachments on individual pages as opposed to one shared "files" section. 80% travel.

Senior developer and mentor on a project to introduce web services into an existing product in an employee benefit services provider's enterprise. Mentored project teams in agile methods, continuous integration, and test-driven development. 80% travel.

Senior developer on a project to produce a portal that aggregates numerous applications for dealers of a leading heavy equipment manufacturer. 80% travel.

Senior developer on a project to produce a web-based J2EE application that automates much of the cash applications and lease/loan funding operation of a major computer manufacturer's leasing division, replacing a great deal of manual, Excel-based work and enabling the company to reduce manpower in the finance department. 80% travel.

Designed and developed real estate closing services applications using Java/J2EE and .NET. Conducted technical interviews. On own initiative, enhanced the department's Java skills assessment test administered to prospective developers and graded dozens of completed assessments; and promoted and learned about software practices such as test-driven development (TDD), software craftsmanship, refactoring, mock objects, JUnit, agile development, and exception handling via book discussions and presentations.

Senior developer on a project to produce a unified customer administration application for the company's real estate closing services subsidiary.

Senior developer on a project to produce a sub-escrow processing system for LandSafe Title of Southern California.

Technical lead and senior developer on a project to produce a prototype of an enterprise-wide processing system for LandSafe Title of Southern California.

Architect, technical lead, mentor, and developer on a project to produce a commission management system for a major commercial airline. 100% at client site.

Senior developer on a project to produce a wireless travel application for a major travel reservation information company. Minimal travel to client site.

Consultant on a project to produce a customer support application for a global computer manufacturer. 100% travel.

Conducted technical interviews and graded written Java skills assessments for the recruiting department.

November 1995 - February 1999

As a software engineer, designed and implemented services and applications for and on top of the Wireless Automation Tool Development group's Test Tool Framework (TTF), a set of reusable components for creating telephony test automation tools, and BITE, a test information repository.

February 1994 - November 1995

As a product verification specialist, developed and maintained several utilities for test suite extraction and verification using Perl; devised, executed, and verified automated test suites for a variety of DMS-250 call processing features, primarily involving call treatment, OA&M, and ISUP protocol conformance.

On own initiative, co-developed an "Introduction to Perl" class for Nortel's internal training department, and instructed several sessions up until 1998.

July 1992 - February 1994

As a release engineer, performed software configuration management and automated builds using Nortel's proprietary SCM system, supporting tools, and tools of my own creation. Created utilities and applications to assist developers of Nortel's switching software--i.e., the users of the SCM system--in performing local builds and configuring software packages.

On own initiative, rewrote the material for the "Unix Fundamentals 2" class for Nortel's internal training department, and instructed several sessions up until 1995.

Created data-entry and data-integrity applications using FoxPro to support the company's study of social policy in various U.S. states.

Presentations

Publications

Education

Certifications

Skills Inventory

Technology/Tool/TechniquePeriods of Continuous Use
.NET 1.02003-2004
.NET 1.12005-2006
Ant2002-present
ANTLR2007-2009
ASP2005
ASP.NET2003-2004, 2005
Bamboo2007-present
bash2007-present
BEA WebLogic 8.12004
Bugzilla2005-2006
C1992-1997
C shell1992-1993
C#2003-2009
C++1995-1999, 2005
Cactus2001
Checkstyle2005-present
Clover2007-2009
Cobertura2006-present
CppUnit2006
CruiseControl2002, 2004-2005
Cryptographic algorithms: TripleDES, AES (Rijndael), SHA-1, MD52002, 2004-2005
CSS2005-present
CVS1997-1999, 2003-present
DbUnit2005
EasyMock2004-2005, 2007-present
EJB1999, 2001-2002
EMMA2005-2006, 2010
Ext JavaScript framework2009-2010
FitNesse2005
Git2009-present
GreenPepper2007-2008
Groovy2008
Haskell2010
Hibernate2004, 2010
HP-UX1992-1999
HTML1996, 1999-present
HTTPUnit/JWebUnit2004
Hudson2010
IBM MQSeries2001
IBM Rational Application Developer 6.02005
IBM VisualAge for Java1999-2001
IBM WebSphere Application Developer 5.12005
IBM WebSphere Application Server 6.12010
IBM WebSphere Application Server 6.02005
IBM WebSphere Application Server 5.12005
IBM WebSphere Application Server 4.02002-2003
IBM WebSphere Application Server 3.52001
IBM WebSphere Application Server 2.01999-2000
IntelliJ IDEA2002-present
Java1997-present
Java RMI1998, 2001
JavaScript2005-present
Java Servlets1999-present
JavaServer Pages1999-2007
Java Swing1998-1999
JBoss2002
Jester2005-2006
Jetty2008-present
JIRA2007-2009
JMS2002
JNI1998
JRuby2008
Jumble2008
JUnit2001-present
Korn shell1992-1999
lex/yacc1996-1998
Linux2006-2007
Log4J2001-present
Mac OS X2007-present
make1990-1999
Maven2004, 2007-present
Mercury TestDirector2004
Microsoft SQL Server 20002002-2004, 2005
Microsoft SQL Server 20052008-present
Microsoft Visual Studio .NET 20032003, 2005-2006
Mockito2009-present
Motif1992-1993
MySQL2008-present
NAnt2003, 2005-2006
NUnit2003-present
ObjectSpace Voyager1999-2001
Oracle 9i2004-2005
Oracle 10g2009-present
Perl1993-present
PMD2005-present
Python2002
Rally2010
Rational ClearCase2005-present
Rational ClearQuest2000, 2005-present
Ruby2002-present
Scrum2006-present
Selenium2005-2008
SMTP2006-2007
Spring2007-present
Struts2001-2007, 2010
Subversion2004-present
Test-Driven Development2002-present
Tomcat2002, 2005-present
VBScript2005
Windows 2000/XP2000-present
WML/HDML1999-2001
Wicket2007-2008
XDoclet2004
XHTML2004-present
XML2000-present
XMLUnit2005, 2008

Side Projects