I’ve been developing for the web since 2001, taking a special interest in best-practices and test driven development. While I develop primarily in PHP, I’ve had some significant experience with Java, and have dabbled in many other languages including Ruby and JavaScript.

Community Involvement

Open Source Libraries Authored

I have authored several popular open source libraries:

  • PHP Domain Parser: Public Suffix List based domain parsing implemented in PHP.
  • Query Auth: Signature generation and validation for REST API query authentication.
  • Password Validator: Makes upgrading to secure password hashing both simple and easy.
  • Slim Auth: Authorization and authentication for the Slim Framework.

Open Source Contributions

At various times I have contributed to:

Work Experience

Graph Story, Memphis, TN

CTO - May 2014 to Present

  • Responsible for planning, purchase, and implementation of IT infrastructure
  • Project lead and lead developer on all technology projects
  • Developed and deployed an automation plan for entire Graph Story infrastructure

OpenSky, Nashville, TN

Software Engineer - February 2013 to May 2014

  • Built cool things for the OpenSky social shopping platform
  • Responsible for maintenance and new feature development
  • Wrote lots of unit and regressions tests, helping to maintain and improve already excellent test coverage
  • Tech used: Symfony2, Mongo, MySQL, nginx, Apache, VirtualBox, PHPUnit, JIRA, and Jenkins CI, among others

Raven Internet Marketing Tools, Nashville, TN

Developer - October 2012 to January 2013

I worked on new tools for Raven’s suite of marketing tools, most significantly the Quality Analyzer scoring in the Research Central section.

InterSec Research, LLC, Memphis, TN

Chief Applications Developer - February 2012 to October 2012

  • Responsible for maintenance and new feature development of internal applications in a Windows/PHP/SQL Server environment.
  • Introduced Atlassian JIRA, Phing, git, and unit testing to our development environment.
  • Utilized multiple Zend Framework (ZF1) components to aid in refactoring legacy applications.
  • Traveled to the home office in Stamford, CT on a monthly basis to work directly with internal clients.
  • Refactored semi-annual data load functionality in one of our mission-critical applications, reducing bug reports and support phone calls during data load operations from “constant and never ending” to near zero (“constant and never ending” is a developer quality-of-life metric used when no actual statistics exist).

Terex Construction Americas, Southaven, MS

Web Developer - August 2010 to February 2012

  • Responsible for maintenance and new development of multiple intranet applications in a Windows/PHP/SQL Server environment.
  • Introduced Subversion version control to our development environment.
  • Introduced Atlassian’s JIRA bug tracking application to our development environment.
  • Developed a system to help track and resolve shipping and receiving issues that helped speed resolution of the tracked issues and fostered communication between our logistics vendor and internal employees.
  • Utilized multiple Zend Framework (ZF1) components to aid in refactoring legacy applications.

Methodist Healthcare, Memphis, TN

Java Web Application Developer - May 2009 to August 2010

  • Responsible for developing and maintaining web applications for the Methodist Healthcare and Le Bonheur internet and intranet.
  • Introduced Test Driven Development to our programming culture.
  • Lead developer on the Le Bonheur patient acceptance system that allows physicians to request patient referrals online.
  • Lead developer on an employee appreciation ticket purchasing application. End users are able to purchase tickets to an employee appreciation event, while HR is able to manage, track, and report on ticket sales. This is our first application to be developed entirely with Test Driven Development.
  • Development environment consists of Windows, Tomcat, Struts 2, Spring, JPA, and Hibernate.

Crye-Leike, Memphis, TN

Web Developer - January 2009 to May 2009

  • Responsible for developing and maintaining web applications for the Crye-Leike internet and intranet.
  • Developing new features for and maintaining
  • Primarily responsible for updates to the Crye-Leike property search form, making searching more user-friendly and adding advanced search capability.

G2 Technology, Memphis, TN

Internet Developer at St. Jude Children’s Research Hospital - July 2007 to December 2008

  • Design, develop, and maintain custom web applications for St. Jude’s intranet using PHP, MySQL, and Java.
  • Responsible for conversion of intranet web forms from ASP Classic to PHP. Utilized the Zend Framework and the Zend Form component heavily.
  • Lead developer for an internal patient referral and acceptance application using the Zend Framework and MySQL.
  • Designed and implemented a front-end for an in-house web form generator using Zend Framework’s MVC implementation. Time spent creating forms went from 5-10 minutes per form to less than 30 seconds per form.
  • Worked with another developer to build a Zend Framework extensions library to address specific business needs at St. Jude.


University of Memphis, Memphis, TN Electronics Engineering Technology 1995 - 1998


Available on request