Portfolio Tools

View this list as a table.


Apache is a web server that I have used extensively since 2007. I'm very comfortable installing, configuring and updating the Apache HTTP server. I often have local Apache servers on my work machine where I do test work, which is then uploaded to the live server for production purposes.

Samples: 3


Samples: 1

browser extension

I began writing browser extensions in 2011 when I made Zearch for the Zappos API Developer challenge. I wrote that extension with portability in mind, and separated code in such a way to have the core functionality easily transition from Chrome to Firefox.

Samples: 1


At Sable Systems, I shifted into a firmware development role in September 2012. This role required me to learn how to program PIC18/24/32 microprocessors in C using either the HI-TECH PICC18 compiler or the XC8 compiler. I have maintained several pieces of firmware and written one from scratch.

Samples: 1


Samples: 2


I first encountered canvas while working on wsilent, but didn't actually use it and develop with it until I worked on fusion.

Samples: 1


After writing Fusion from scratch, I decided to find a JavaScript game development platform for Nordic and chose cocos2d-javascript. I have gained decent familiarity with it and Nordic has progressed pretty smoothly. I have yet to complete a project with the cocos2d-javascript platform, however.

Samples: 1


I began to adopt Composer in mid 2012 as a dependency management tool. Initially, I used it purely as a consumer, configuring a composer.json file to download and update dependencies for SableOPS. However, I later put both Indigo and DOMi on Packagist and began to use composer as a provider.

Samples: 1


I've been using CSS to style web pages since mid 2006, when I switched from table based designs. I now do all style in CSS and try to have as little markup in the HTML as possible. I constantly try to find new techniques to further streamline my styles. While I admit my design skills are lackluster, my knowledge of CSS is not at fault for that.

Samples: 5


I first used Drupal in 2009, but didn't really jump into it head first until mid 2011. I was initially unimpressed, but the more time I've spent with the system, the more I've come to think it's far-and-away the best platform I have used. I do all new work on Drupal these days, even converting this portfolio site from WordPress to Drupal in the summer of 2011.

Samples: 3

google api

I used the Google API for my Team Liquid Calendar project, specifically using the Calendar functionality to insert new events into a public calendar.

Samples: 1


I began writing Greasemonkey scripts in 2008 for my GreasedPMA plugin for PHPMyAdmin. I don't use Greasemonkey as much since early 2011, when I learned to write proper browser extensions in Chrome and Firefox and now use that for browser modification.

Samples: 2


I have been messing around with HTML since the mid 90s, but didn't become a professional web developer until 2006. Since 2007, I have done all of my designs using tableless designs relying on CSS for styling. I currently use HTML 5 for the majority of my new work.

Samples: 6


I've been working with JavaScript since 2007 for web page interaction. I wrote vanilla JavaScript for a few months until switching to jQuery. I recently switched back, partially, to vanilla JavaScript for situations where jQuery is simply too heavy or not available. I also frequently work with AJAX.

Samples: 11


I began to use Kohana 2.x in late 2008 when tasked with building SEO Worldwide. A colleague had begun working with it and highly recommended it. I immediately loved the ORM and the views and used Kohana exclusively for a few years.

I was unimpressed with Kohana 3.x and made the decision to stick to 2.x. I did not like the changes, especially the removal of the event system. In recent years, the lack of a coherent menu, permission and page layout system began to irritate me, and I switched all of my work to Drupal 7.

Samples: 4


Linux has been my sole web development platform since 2007. I do all of my work on a local LAMP server and upload it upon completion. I chose to do it this way, rather than use something like WAMP, because I wanted my work environment to be as close to my production environment as possible. I tend to use Virtual Machines to set up Linux machines to do my work at home, and keep my work computer as purely running Linux. Because of this, I am extremely comfortable in Linux, both through the GUI and through command line.

Samples: 3


MySQL is the only database engine I have ever used, but I have yet seen a driving reason to look into others. I have set up and maintained dozes of MySQL databases, and am capable of writing custom MySQL queries of all kinds.

Samples: 6


I first heard about nodejs in March 2011, but didn't use it very much until I began work on wsilent in September 2011. Most of my nodejs work has specifically involved the socketio library for fully duplexed communication between client and server.

Samples: 3


I first used OAuth for my Team Liquid Calendar script to connect up to the Google API and access my calendar to store the events from the TL Calendar. Since then, I have used the Salesforce API, running OAuth1 and the Quickbooks API running OAuth 2 to authenticate a user and exchange data. I have always been on the OAuth client side, and never on the server side.

Samples: 1


PHP has been my primary web development language since 2006. The LAMP stack, in particular, has been my workspace. While I've dabbled in other server-side languages, such as Java and nodejs, I always return to PHP for most of my work.

Samples: 10


I've wanted to broaden my horizons outside of PHP since around 2010, but my first real attempt was in 2012 with some light Python work on projecteuler.net.

Samples: 0

regular expressions

I have used regular expressions primarily for scraping HTML to identify blocks of code for further parsing. I have used it extensively and have used nearly every facet (that I am aware of, at least) in significant, practical ways. This has ranged from simple email / URL validation to mass-editing of a .csv to change the structure of certain fields.

Samples: 1


I began using SASS when Drupal's Zen theme started to support it. I instantly loved the power of it and how it supported functionality that I long desired in CSS, specifically nested selectors and variables.

Samples: 0


When I first started at BDI, there was no VCS used on any systems and a lot of development work was done live on the server. I quickly fixed this and implemented CVS on all systems to better manage projects and prevent live edits from impacting customers.

After a few months of CVS, I quickly became annoyed with the system and it's tagging / branching system and transitioned all systems over to subversion. I much preferred the way subversion handled tagging in an arbitrary fashion and stayed with it for several years.

In 2011, I was forced to learn git when I began the statepicker module, since that was on Drupal.org. I had a github.org profile already but had not used it. I loved the distributed nature of git and began my new projects on git and began to transition away from subversion.

Samples: 7

visual basic

During my time at Sable Systems, International, VB .NET became my primary language. I began to use the language to maintain the existing software suite, but am in the process of migrating towards C#, which I have come to consider a superior language.

Samples: 1


While I never did extensive modification to WordPress sites, I am comfortable setting them up and using them. I built my original portfolio site on WordPress and used it actively for 4 years before deciding to switch to Drupal.

Samples: 2


From 2007 until 2009, I preferred using XML / XSL to power websites. I wrote the DOMi library for PHP to aid in this, before switching to Kohana and straying away from XML / XSL. I still am comfortable writing XPath queries to navigate around XML trees, but even for data storage I've come to prefer json's simplicity.

Samples: 2


Samples: 1


I used XSL from 2007-2009, but have since shifted away from it. While I still think it has some great uses, I find it to be too unwieldy for most purposes, requiring extremely large amounts of code for fairly simple tasks. I still use it occasionally on some legacy systems, but no longer write new systems with XSL capability in mind.

Samples: 2