Technical Skills
Languages
- PHP
- Javascript/AJAX
- SQL
- HTML/XHTML
- CSS
- Perl
- Ruby
- C/C++
Technologies:
- Symfony
- MySQL
- SQLite
- Apache
- Flash
- Linux/Unix
- Windows
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.