If you contact me...

  • Don't send a blanket, impersonal form letter.
  • Mention the name of the company and the salary - I really need to know both.
  • Don’t ask me to reply with my resume. It tells me you haven’t done your homework.
  • Reference something about me in particular, let me know that you have some reason why you are you contacting me. Do you know anything about me that makes you think I might be a good fit for these roles?
  • Don't try to get names of hiring managers or other developers from me. Just don't. It makes me sad.
  • Please read Lessons from very bad recruiting emails before sending me an email.


  • Twenty years of full-time, hands-on experience in software development and architecture
  • Five years of full-time, hands-on experience with Agile/SCRUM software development methodologies
  • Proven track record of envisioning tactical solutions that balance technical quality with delivering functionality on aggressive timelines
  • Expert implementation of computer-adaptive scoring and selection
  • Frequently selected by upper management to lead and implement business-critical initiatives

Technical Skills:­

Java, Groovy, RDBMS, Hibernate, MongoDB, JavaScript, NodeJS, AngularJS, HTML5, CSS, Spring, Selenium, REST, Web Services.


Technical Coach­ 2015 to­ Present

Knight Rider Consulting, Minneapolis,­MN

  • Helping to elevate teams from 'Doing' Agile to 'Being' and 'Living' Agile.­
  • Coaching teams on the effective application of XP practices and the joy it can bring to development.
  • Design and deliver community education presentations – e.g., Introduction to TDD, Introduction to Angular JS,­Introduction to Meta Programming, Introduction to Extreme Programming, etc.­
  • Design and lead Code Retreat sessions­

Software Product Architect ­2013 to­ 2014

Pearson VUE, Bloomington, MN

  • Helping to elevate teams from 'Doing' Agile to 'Being' and 'Living' Agile.­
  • Initiated and facilitated a "Pearson VUE Day of Code Retreat" to help developers learn new skills, focusing on practicing TDD, and pair programming.­
  • Lead developer and Scrum Master on “Preview” project. Introduced several new development practices including TDD, Pair Programming, and CI enforced code coverage for all Java and JavaScript. Project released to production one month ahead of schedule.­ Included REST and SOAP API's.
  • Introduced Pair Programming to Pearson VUE. My team was the first to use pair programming. Team members, while a bit reluctant at first, now enthusiastically pair daily and encourage other teams to use pairing also.
  • Introduced NodeJS, Karma, Protractor, Bower, Istanbul, and Grunt to Pearson VUE. My team was the first to use NodeJS and other JavaScript tools to automate dependency resolution, testing and enforce code coverage minimums for JavaScript.
  • Introduced story size constraints to Pearson VUE. My team was the first to require stories to be broken down (no larger than 2 days' work) before they can be included in a sprint. Now the team is clearer on what is needed, errors are constrained, and estimates are more accurate.
  • Introduced AngularJS to Pearson VUE. My team was the first to use AngularJS and it has since been adopted in the reference architecture.
  • Introduced the use of Puppet to the Pearson VUE development group. My team was the first to use Puppet to provision the development environment, cutting new developer on-boarding time by at least 8 hours.
  • Introduced the use of Vagrant to the Pearson VUE development and QA groups. My team was the first to use Vagrant to do destructive testing of a production-like environment. Previous to the use of Vagrant, QA did not have the ability to test server failure related scenarios. Vagrant boxes were provisioned using Chef.
  • Participated in the evaluation and selection of company-wide provisioning tools (Puppet vs Chef).
  • Team member implementing Continuous­ Delivery pipeline using Puppet, Packer, and Vagrant­

Technical Coach - 2012 to 2013

Boost Agile, Shanghai, China

  • Help ­developers implement a variety of best practices to increase quality and maintainability.­
  • Teach Agile/Scrum courses
    • non-certified­­3-day Scrum Master and Product Owner
    • Introduction to Test Driven Development
    • introduction to Pair Programming
    • Introduction to AngularJS

Senior Software Architect/Product Architect – Test Development 2009 to 2012

Pearson VUE, Bloomington, MN­

  • Set design direction and approval, code review approval, introduce team members to new frameworks like Spring and Freemarker, design Next Generation Test Development tools.
  • Led architecture for strategic innovation project involving natural language processing.
  • Designed and implemented automated daily build process for all test development products, saving 10-15 hours a week and facilitating daily (rather than weekly) deployment to QA.
  • Designed and implemented XML schema used by the Business Intelligence (BI) Group to document implementation-agnostic exam structure. This new XML schema communicates critical information required for all exams taking advantage BI reporting functionality.
  • Designed and taught a Java course for PowerBuilder programmers which developed their in-depth knowledge of OO Design, Design By Contract, Responsibility Driven Design, and Behavior Driven Design methodologies and made extensive use of Ant, Ivy, Spring, Freemarker, JavaCC, Java collections framework, IntelliJ Idea, Perforce, and the Pearson Java coding standard.­
  • Designed a candidate assessment tool to evaluate Java design implementation and documentation skills of prospective software development employees.

Engineering Lead 2004 to 2009

Pearson VUE, Bloomington, MN­

  • Revitalized an item authoring that had been stalled for two years. Designed a new architecture and assisted a new team with the implementation. Successfully delivered complete functionality within six months; the product became the foundation for the Next Generation Test Development tools.
  • Selected as a technical team member working with the Road and Transport Authority of Dubai to deliver a sophisticated high-tech Driver Testing System.
  • Designed and directed implementation of a module to reliably convert RTF-based exam content into multiple output formats, including QTI. Reduced QA labor by 25,000 hours in the first 12 months.
  • Designed and directed implementation of new import functionality that preserves all formatting information when importing RTF-based exam content into VUE authoring tools. Saved approximately 40 hours of manual import and QA effort per import.­
  • Designed and directed implementation of a new RTF-based exam content definition language, VBI (VUE Basic Item), which allows Pearson VUE to receive exam content from clients that do not have systems capable of generating QTI. Saved approximately 10 hours of manual data manipulation per import.­
  • Led effort to adopt Agile Software Development methodologies for Test Development team.

Senior Software Engineer 2003 to 2004

Pearson VUE, Bloomington, MN­

  • Added Re-score and Reprint functionality to the Test Driver by implementing a programmable finite state machine to encapsulate business logic.
  • Designed and implemented adaptive selection and scoring architecture used to deliver computer adaptive exams.
  • Implemented client-specific adaptive algorithms for NABP and NREMT.­
  • Took ownership of, and Implemented architectural changes to, the ACT adaptive algorithm.
  • Led effort to adopt Agile Software Development methodologies for Test Development team.

Software Developer 1998 to 2003

Pearson VUE, Bloomington, MN­

  • Assumed ownership of 30+ Visual Basic projects used for test delivery after two years of development by Iowa City team. ­Designed standardized error handing and logging routines for all projects that allowed capturing of the call stack, which is not supported by VB. Reduced debugging and production diagnostic time from an average of 4 hours to an average of 10 minutes.
  • Designed and implemented support for Japanese and other double-byte character sets.


  • Wisconsin Public Radio, Eau Claire, WI
  • Led team that wrote an application to collect election data used to broadcast election results on Wisconsin Public Radio. Released as an open source project under GNU General Public License v3. ­Currently maintained by the University of Wisconsin Eau Claire. ­
  • Cadott Area Chamber of Commerce, Cadott, WI
  • Webmaster, Newsletter Editor, Parade Coordinator, Advertising Coordinator.


Licensed private pilot, PADI-certified SCUBA advanced open water diver, amateur photographer



Avid reader of programming and engineering related material including, but not limited to, the following:
Design Patterns Agile Software Development, Principles, Patterns, and Practices­
Effective Java Thinking in Java
Java Concurrency in Practice Compilers Principals, Techniques, and tools (Aka: Dragon Book)
Refactoring Patterns of Enterprise Application Architecture
Design by Contract by example Beautiful Code
Modular Java Java NIO
  • Microsoft Certified Professional-Product Specialist
  • Visual Basic Programming I Certificate of Completion, Dakota County Technical College
  • Access Programming Integration Certificate of Completion, Dakota County Technical College

University of Wisconsin, Eau Claire, WI

Coursework toward a Bachelor of Science degree in Computer Science with an emphasis in Software Engineering.