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.
- 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 framework.
- 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, and shipping.
- 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
- 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 was great.