Work Experience

Senior developer on a team building and maintaining a suite of Java applications that support the operation of the stores, including point-of-sale, gift registry, and order fulfillment.

Senior developer on a team building shared technology services for shrink-wrapped tax preparation products using Rails 3, .NET, and ASP.NET MVC 3. 100% at client site.

Senior developer on a team building a suite of Java 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 Java 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 J2EE 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 J2EE-based 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.

Presentations

Publications

Education

Certifications

Skills Inventory

Technology/Tool/TechniquePeriods of Continuous Use
.NET 3.5, 4.02010-2011
.NET 1.02003-2004
.NET 1.12005-2006
Ant2002-present
ANTLR2007-2009
ASP2005
ASP.NET2003-2004, 2005
ASP.NET MVC 32011-present
Bamboo2007-2010
bash2007-present
BEA WebLogic 8.12004
Bugzilla2005-2006
C1992-1997
C shell1992-1993
C#2003-2004, 2005-2006, 2010-present
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-2010
Eclipse2005-present
EJB1999, 2001-2002
EMMA2005-2006, 2010
Ext JavaScript framework2009-2010
FitNesse2005
Git2009-present
GreenPepper2007-2008
Groovy2008
Haskell2010
Hibernate2004
HP-UX1992-1999
HTML1996, 1999-present
HTTPUnit/JWebUnit2004
Hudson/Jenkins2010-present
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, 2011-present
JBoss2002
Jester2005-2006
Jetty2008-2009
JIRA2007-2009
JMS2002
JNI1998
jQuery2010-present
JRuby2008
Jumble2008
JUnit2001-present
Korn shell1992-1999
lex/yacc1996-1998
Linux2006-2007
Log4J2001-2010
make1990-1999
Maven2004, 2007-present
Mercurial2010-present
Microsoft SQL Server 20002002-2004, 2005
Microsoft SQL Server 20052008-present
Microsoft Visual Studio 20102010-present
Microsoft Visual Studio .NET 20032003, 2005-2006
Mockito2009-present
Motif1992-1993
MySQL2008-2009
NAnt2003, 2005-2006
NUnit2003-present
NetBeans2010-2011
ObjectSpace Voyager1999-2001
Oracle 9i2004-2005
Oracle 10g2009-present
Perl1993-present
Perl2011-present
PMD2005-present
Python2002, 2010
Rails2010-2011
Rally2010
Rational ClearCase2005-2006
Rational ClearQuest2000, 2005-2006
Ruby2002-present
Scrum2006-present
Selenium2005-2008, 2010-2011
SMTP2006-2007
Spring2007-present
Struts2001-2007, 2010
Subversion2004-present
Test-Driven Development2002-present
Tomcat2002, 2005-2010
VBScript2005
Windows 2000/XP/72000-present
WML/HDML1999-2001
Wicket2007-2008
XDoclet2004
XHTML2004-present
XML2000-present
XMLUnit2005, 2008

Side Projects