Profile

A skilled, trailblazing & experienced software engineer who loves to teach & learn.

Skills

  • JavaScript (browser/Node.js), Python, shell scripting, some C/C++
  • Asynchronous, OO & functional programming; API design, SPAs
  • Testing, code quality, team leadership, teaching & training
  • Technical writing
  • macOS & various tastes of Linux
  • IoT, microcontrollers

Recent Experience

Director of Engineering, Critical Mix

Portland, Oregon — Jun 2016-Present

My mission at Critical Mix is to improve the quality of our software and reduce defects.

  • Train development team on best practices of developing modern JavaScript & AngularJS.
  • Teach testing with Mocha, Karma, & Protractor: unit, functional, & integration.
  • Define processes & configure tools to report on quality metrics.
  • Implement AWS Lambda function(s) and a development workflow.
  • Next up: teaching ES2015+!

Core Maintainer, Mocha

https://mochajs.org — 2014-

De facto lead maintainer of the most widely-depended upon Node.js module (as of Jan 2017). Mocha is a testing framework in the vein of RSpec for Ruby.

  • Led effort to join OpenCollective
  • Led effort to join the JS Foundation

Software Architect, FocusVision Worldwide

Portland, Oregon — 2010-Mar 2016

Spearhead JavaScript development in quantitative research product. Teach, manage, mentor & train developers on JavaScript, AngularJS, unit testing, & full-stack software engineering. Recent highlights:

  • Migrated team from Mercurial to Git with Bitbucket Server (formerly Stash).
    • Provided training & documentation while establishing new workflow.
    • Wrote Node.js service to bidirectionally merge changesets between Mercurial (many repos) & Git (single repo) during transition period.
  • Delivered two major releases of “Crosstabs”, a quantitative research reporting application.
    • Interviewed, hired, managed & led a development team to build a large AngularJS SPA.
    • Refactored into a well-organized & principled AngularJS app after initial effort.
  • Modernized JavaScript testing strategy & toolchain to Mocha/QUnit & Karma, from a home-brewed Python-based runner.
  • Led effort to release many internal JavaScript libraries under OSS licenses (on GitHub).
  • Drove standardization of development environment on Vagrant. Leveraged Ansible to fully obsolete .deb packaging strategy.

Senior Software Engineer, Decipher, Inc.

Portland, Oregon — 2008-2010

(Decipher, Inc. merged with FocusVision Worldwide in 2015)

Software Engineer, Castle Rock Consultants

Portland, Oregon — 2008

Designed & developed intelligent transportation applications using Java EE, Hibernate, & JUnit.

(various positions)

Portland, Oregon & Eugene, Oregon, 1996-1998 & 2000-2008

More details available upon request.

Publications

Author, “Developing an AngularJS Edge”

Bleeding Edge Press — 2013

One of the first books written on AngularJS.

Co-Author, “Choosing a JavaScript Framework”

Bleeding Edge Press — 2014

Contributed the section about AngularJS for this book, which aims to compare & contrast leading JavaScript frameworks.

Education

B.S., Computer & Information Science

University of Oregon
Eugene, Oregon — 2002