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