90 Columbia St. Apt 5C - New York, NY 10002 - 734.239.2303
Since leaving my long-term stint heading development at Newgrounds, I
have learned Haskell, written a programming language, taught myself
film photography, and played a lot of chess. I think I'm smarter now.
It's time to get back to work.
without being a different language.
- Node.js Asynchronous Monad - Combines the Continuation, State, and Error monads to simplify the callback-style IO of node.js.
- Test Data Generator
- Generate tables of valid relational data based on a given schema. Written in Ruby.
- Additional projects
- Please refer to the Github and BitBucket links at the top of this document.
Lead Software Engineer, Newgrounds, April 2008 - November 2013
Newgrounds is an entertainment portal built on the LAMP stack,
serving user-submitted games and animated shorts. Newgrounds is a
high-traffic site with over one million registered users, and thus
requires scalable code and diligent attention to database efficiency. My
major projects there included:
- The creation of a custom MVC framework for PHP, and the integration
of this framework with the site's existing code base. This framework
includes a flexible object-relational mapping, a concise configuration
system, code generators, and a modular system for separating view and
controller logic. Both the store and the art portal were built on this
- Leading the development team in a redesign of the site code,
including the separation of legacy code into model, view, and controller
- The Art Portal, a place
for users to showcase their art work and receive feedback from other
users. This includes file uploading and thumbnail creation, voting,
reviews, user management, moderation tools, as well as an AJAX-based
browsing application, which among other things includes back-button
safe, bookmarkable AJAX states.
- The Newgrounds store,
complete with cart management, secure credit card processing, and, on
the backend, a complete set of tools for product management, inventory,
- Migration of the source tree into version control, namely Subversion.
- Various maintenance tasks.
- LectureTools, 2007 - 2008
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 the Symfony framework, 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, 2007
- 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, 2007
- 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'
- Chris Clinton Photography, 2007
- Photographer Chris Clinton's online gallery. Created a custom, AJAX-enabled content management system (CMS) in PHP / MySQL.
- NovaTech, 2007
I completed the bulk of a dual degree in physics and mathematics at
Drexel University. I worked for 4 months in 1999 as an intern at Los
Alamos National Laboratory, assisting in research on quantum computing.
The last non-freelance job I had in the IT industry, prior to
Newgrounds, 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. This