Skills and Proficiencies
Web Development (Advanced)
- JavaScript
- HTML5
- CSS3
- ES6
- ES2015
- React
- Flux
- Backbone.js
- Knockout.js
- Webpack
- Grunt
- Gulp
Architecture and Backend (Intermediate)
- REST
- Hypermedia
- node.js
- ExpressJS
- SQL
- NoSQL
Tools (Advanced)
- Sublime Text
- Git
- GitHub
- Terminal
- Chrome/DevTools
Work History
Web Developer specializing in working with clients to build web responsive and accessible web sites and applications with a focus on moving the web forward by building it a better way.
- Working primarily with a major retail client on improving their ecommerce platform performance by converting it to an improved component-based architecture using React.
LeanKit
Senior Web Developer
From September 2015 to December 2017
- JavaScript
- HTML5
- CSS3
- React
- Flux
- node.js
- Git
- GitHub
Working on maintaining the company's flagship Lean/Kanban project management product
Lampo Group
Senior JavaScript Engineer (contractor)
From November 2014 to September 2015
- JavaScript
- HTML5
- CSS3
- SASS
- React
- Webpack
- Ruby on Rails
- node.js
- Git
- GitHub
Contracted for Ramsey Solutions as a front-end web developer helping build the SmartDollar site and application. We applied responsive design methodologies to make applications available in web browsers on any device.
- Designed and implemented a solution for modular JavaScript for the SmartDollar application using vanilla JavaScript and namespacing
- Designed and implemented a reporting application with React and my own implement of Flux using postal.js and the Chartist library for custom charts and graphs
More work history
- appendTo // Senior JavaScript Engineer and Team Lead // from December 2012 to October 2014
- Food Donation Connection // Senior Software Developer // from September 2011 to December 2012
- Scripps Networks // Senior Software Developer // from July 2008 to August 2011
- Extreme Consulting // Software Developer // from April 2008 to July 2008
- Lexis Nexis Corporation // Software Developer // from June 2006 to March 2008
- Lighthouse Technologies, Inc // Software Engineer in Development and Test // from June 2005 to June 2006
- Northrop Grumman for Air Force Research Labs // Database Administrator and Developer // from January 2002 to June 2005
- Air Force Institute of Technology // Database Administrator and Developer // from August 1997 to December 2001
Open Source / Code
A collection of open source projects I've either created or contributed to. Should hopefully provide some helpful examples of code I've written, for those interested in that kind of thing.
Poplar
This project is an Electron menubar application for MacOS that I built for use in controlling a Wemo power outlet for turning a light on and off from my laptop. It's build with Electron, React and Redux.
Decked Out Workout
React/Redux web application optimized for mobile devices for facilitating a quick-and-easy workout from anywhere you are when you have time. Code walkthrough available upon request.
This Resume
The code that generates this resume. I like to use this project as a sandbox to try various tools and techniques, and as an example of how I typically organize my code (although this is really an overly simplistic example). It's a simple node.js script that uses React components for each distinct section of the resume to generate a static HTML view. The CSS is modularized and processed with PostCSS and takes advantage of a number of advanced CSS3 techniques for styling a view that is responsive and easy to view from any device. A single JavaScript module handles page initialization, some on-page navigation and toggling the visibility of older work history elements. The entire thing is driven by a JSON Resume Schema compliant document, merged with an additional JSON document that adds some enhanced data beyond what the schema supports for customization. Editing and maintenance is simple, started with npm (which just launches a Gulp watch task), and updates to any file are reflected immediately in-browser with the use of BrowserSync.
Quakie
This was a fun project that gave me a great opportunity to get more comfortable with some tools I was interested in expanding my knowledge of. There is a node.js script that iterates over a series of dates and downloads historical weather data and persists it to a Postgres database. With all of the historical weather data I was interested in persisted locally, I created a web UI with React, Webpack, postal.js, express.js, axios and Massive.js to extract the data from the database and generate graphs with weather trends using Chart.js.
Sycamore
A JavaScript mixin that simplifies the organization and execution of jQuery `$.ajax` calls.
Sumac
A JavaScript mixin that extends a module with postal.js messaging functionality. Supports both publishing and subscribing functions, as well as a simple messages and subscriptions configuration syntax.
Various others
I have a number of others in various states of relevancy and completion. Some are no longer in use or are outdated by now, and others are the product of learning new tools and techniques, and never really got completely "finished." You know how it goes, right? ;-) Feel free to poke around in them anyway.
Publications / Writings
Some things I've written...
Modern Web Practices
A book on modern web practices that I contributed a chapter to.
Managing your Ajax server requests with Sycamore
A detailed introduction and overview of using the Sycamore mixin that I wrote, which can be found on my GitHub profile.
Iterating over JavaScript objects
An article on the utility of being able to iterate over JavaScript object literals that demonstrates various methods and their pros and cons.
UMD: JavaScript modules that run anywhere
An article I wrote on how and why to use Universal Module Definition for JavaScript modules that can be used in the browser, in a node.js app, and with any kind of module loader (AMD or CommonJS).
The software development conundrum: estimation
A detailed article on the challenges of estimation in software development.
DRY JavaScript with mixins
An article on the power and value of mixins in JavaScript, with use cases and code samples.
Personal Interests
In case you're interested...while my favorite things in life are growing old with my wife, and watching and helping my sons grow up, these are a few other things I enjoy when I have the time.
The Great Outdoors
- Hunting
- Fishing
- Camping
- Boating
- Hiking
Sports
- Football
- Basketball
- Golf
Reading
- The Bible
- Science Fiction
- Fantasy
- Techno-thriller/Spy fiction
- Westerns
- Military
A little more
If you've gotten this far and still want to know more, here's a very brief, high-level end-to-end career overview...
After graduating from high school, I served for eleven years in the U.S. Air Force: the first six years as a Munitions Systems Specialist and the last five years as a Communications Computer System Programmer. Some of the assignments I served at included George Air Force Base (AFB) in southeastern California, Spangdahlem Air Base (AB), Germany, Prince Sultan AB, Saudi Arabia, Davis Monthan AFB in Tucson, Arizona and Wright-Patterson AFB in Dayton, Ohio. I separated from the Air Force in December of 2001 and have worked as a software developer ever since.