Team lead of two (inclusive) to test and validate four primary applications, some secondary applications, and many addons to our primary applications.

Responsible for maintaining and extending all build scripts and related tools, written in zsh/sh, Ruby, and perl.

Inherited the bug database and client application. Used XP with weekly releases and took the application from something that was reviled to a very functional app that is used by all engineers, tech support, and QA on a daily basis.

Cut the number of DB tables in half.

Cut the application code by one third.

Designed and implemented an automated release process reducing the number of errors in software releases and reducing the time to release a product from 2 days to 1 hour.

Implemented a continuous build system for all of our products. This insured that bad CVS commits were noticed immediately.

Instituted a code review policy for (nearly) all commits, reducing the number of errors that get committed in the first place.

Member of an uber-elite task force to refactor and port entire source repository (1000+ modules) to new scalable build system. Contributed to milestone 4-6 over a 6 month period. Lead milestone 5 over a 6 week period.

Wrote C/C++ parsing tools in Perl to analyze file, module, and package level dependencies of the entire codebase (1000+ modules) and provide numerous reports and graphs.

Investigated problems with the length of a full build. Profiled 10000 individual compiles and isolated problem files. Actually found a single file that took 18 minutes to compile. A very simple change reduced that time to 7 seconds. Directly reduced build by 30 minutes (serial).

Investigated problems in scaling the build system. Wrote tools to analyze binary symbol sizes. With this I found and and fixed code that was producing 2 gig of bloat on disk, which was causing numerous problems in RAM and on disk in some configurations.

Verified and fixed make system for 500+ source modules and applications to optimize refactoring work and incremental builds. Brought incremental build time from 5 hours to 5 minutes. Literally.

Created numerous systems in Perl and Berkeley DB for reporting and monitoring of various systems (production CVS checkout staleness, error log reporting, etc).

Reverse engineered website order pipeline (many many many C/C++ files) to provide a scriptable tool (in C++ and ANTLR) to flexibly generate orders at a massive speed (compared to using the website). Saved at least 4 man-days/week for one QA group alone.

Architected automated test engine for website testing including an easy to understand script language for writing tests, a non-linear multi-threaded task queue, with a well organized object design in Java.

Lead Developer in Quality Assurance Tools group. Team topped at 5 engineers and produced over 75 systems, programs, CGI and scripts for various testing tasks, software engineering tasks, configuration management, and process management.

1998-09-01 to 2002-06-10

Independent Contract with JoeAverage.com (dead)

NOTE: I’ll never work on the windows platform again.

Research with Java, C++, and other languages for internet programming.

Original lead QA developer for Gemstone/J (Gemstone for Java). Duties included architecting and developing original test plan and framework. Development and maintenance of tests. Co-design in some of the API. Mentoring for contractor.

Responsible as the Java certification engineer for Gemstone/J. I spent more than a year becoming an expert in testing Java VM’s on multiple platforms. Worked closely with key engineers at JavaSoft on the JCK’s tests, framework (JavaTest) and new framework subsystems (AssertionTest). Also used JavaTest to architect and implement new test systems for non-JCK use.