I solve tough problems by applying a broad skillset developed through more than a decade of passion for the craft of software engineering and web development.
A diverse background gives me the ability to choose the right tool for any job, be it a classic CRUD app, an API-driven single-page app, something in the middle or something else entirely. Broad expertise lets me iterate—and pick up any skill—rapidly and consistently.
An application isn’t worth building if the user experience is frustrating and inconsistent. An eye for UX and mastery of modern tools and best practices enable me to put user experience and engagement first as a rule, not an exception.
Writing and speaking clearly about complex and subtle ideas is key to my effectiveness as a team player, as is recognizing my teammates’ strengths and seeking out opportunities to share skills and knowledge through mentorship and pair programming.
Infrastructure automation leader Chef is an engineering-driven company that embraces agile methodology, kanban, and pair programming. There I contributed to some of Chef’s most crucial user-facing software:
I joined the Chef Analytics team to help turn a Ruby on Rails and AngularJS prototype into a shipped product on a tight deadline. Subsequently I worked closely with product managers and designers to refine functionality, build new features in React, and execute a UX-driven redesign.
I championed best practices and empowered the team as principal maintainer of a Grunt- and Webpack-based build-and-test workflow. I also aided the implementation of the Rails back-end through technical guidance and pair programming.
On the Workflow Pool team I delivered customer-driven enhancements and fixes for Chef’s core products and workflow tools. I wrote comprehensive RSpec tests to not only cover new code but also to improve coverage and maintainability of existing code.
I implemented UX enhancements and bug fixes for the web-based infrastructure management console Chef Manage using Ruby on Rails and Backbone.js, with comprehensive tests in RSpec and Mocha.
I built a Rails application that notifies administrators of company systems and facilities when a worker’s employment ends and ensures that they take appropriate action. Its features include:
Retrieving and classifying “termination” records from H.R.‘s Oracle database of tens of thousands of workers.
Routing and scheduling email notifications, reminders and escalations according to user-defined rules.
Processing uploaded CSV data and matching it to H.R. records by user-configured fields or, in the absence of an exact match, via “fuzzy” matching implemented in Sphinx.
A fast and usable Backbone.js front-end for managing hundreds or thousands of records and complex configuration options.
Designed and implemented a registration app for merchant services clients of Tag Creative Studio. The five-step wizard had more than 70 interdependent fields and strict validation on the front- and back-end.
Implemented, from a precise specification, a Node.js application for initializing, managing and communicating with other applications as directed by remote clients using JSON commands over a socket interface.
Designed and prototyped a social networking and live chat product in Ruby on Rails, backed by MySQL and Redis.
Designed and implemented a Ruby client for a complex third-party API which gathered search engine data for DIYSEO.
Profiled and optimized complex queries on databases with hundreds of millions of records.
Worked directly with clients for whom an hour’s downtime equaled thousands of dollars’ lost revenue.
From 2000 to 2004 I attended Cornell College in Mount Vernon, IA and earned a B.A. in Computer Science and Art.