Technical Skills

Languages

Technologies:

Sites

LectureTools
LectureTools is a web-based learning tool used in large university lecture halls to improve student participation and understanding. Students can view lecture slides, ask question, respond to instructor questions, and even take notes, all through the web application. The instructors, on the other hand, have tools to graph student responses over time (to things such as multiple choice questions) and track student attendance. I was hired to rewrite the existing site from scratch in Symfony, implementing new features such as a Web 2.0 interface using AJAX and a Flash-based file uploader. I also built the base CSS stylesheet, though both the CSS and the HTML templates have been modified by the client.
Fantasy Brains
Fantasy football site, developed using the Symfony framework. I was brought on half way through the project as lead developer to clean up a rather large mess left by a previous developer. The client expressed relief at finding a reliable, high-quality freelancer. My tasks included complex data management, creating a multi-tiered authentication scheme, and improving on the "Web 2.0" interface.
Matthew Santo
Filmmaker Matthew Santo's online video gallery. I built both the front-end, including the CSS stylesheet and the AJAX-based data retrieval, as well as a complete content management system (CMS) in PHP / MySQL. I also integrated the Flash video player with the pages' javascript. Delivered in five days.
Chris Clinton Photography
Photographer Chris Clinton's online gallery. Created a custom, AJAX-enabled content management system (CMS) in PHP / MySQL.
NovaTech
Implemented new features and performed maintenance on the main order form page using Perl/CGI, Javascript, and CSS
Lazy Yoga - Thai Massage
Emily Bangham is a certified Thai masseuse practicing in Michigan. Visitors to this site can learn more about Thai massage, and can request an appointment with Emily. I wrote the application to manage users and appointments in PHP / MySQL, with a customized Javascript calendar which I integrated with PHP. I also created the CSS based on the client's designs.

Symfony Plugins

Symfony is my preferred PHP framework. I have written two open source plugins for Symfony.

sfPropelValidatePlugin: Model-level Validation
This is a plugin to make Symfony's object relational model more usable and secure by validating data when the application attempts to write to the database. I wrote it for an independent business venture; it has since been used in the LectureTools project.
sfModelTestPlugin: Unit Testing for Model Classes
Symfony has a built-in framework for unit testing, but testing model classes (or any code that accesses the database) can be complicated. I wrote this plugin to speed up that process. This plugin has received a strong response from the community - see the comments on my original blog post and the post for the new version for some helpful info.

Projects

Principia
Created, from scratch, a code generator to facilitate the rapid development of small, lightweight PHP-based sites. Principia would read the structure of a database, and create basic create, retrieve, update, and delete functionality, including web forms and validation. I never released this code - it was my project for learning PHP.
RRmysqlGUI
My first PHP application: a web-based MySQL client. It is still my preferred tool when developing MySQL-backed applications.

Jobs

The last non-freelance job I had in the IT industry was back in 2000 at Destiny Web Solutions in Conshohocken, PA. I was a Principal Developer, designing and implementing web applications in Java and Perl for financial institutions, including Chase Manhattan, Fleet Financial Group, and Northern Trust. Destiny is no longer in business.

In the time between leaving Destiny and starting my freelance career, I did many things that I found very interesting that had nothing to do with web development, including building a cabin from scratch out of salvaged wood and found materials, and living in it for two years. I am glad to have spent that time find a new perspective and ultimately developing a more positive outlook on work and business.