60-06 43rd Ave. Apt 1D - Woodside, NY 11377 - 734.239.2303
I am looking for a role as tech lead, or a senior engineering role with management prospects.
Lead Software Engineer, Greenhouse Software, March 2015 - April 2020
Greenhouse Software produces a suite of SaaS products for to facilitate businesses' hiring processes.
The main stack is based on Ruby on Rails and PostgreSQL, served from AWS.
The following is a sample of some of the work I did there:
- Designed and implemented the system by which Greenhouse was able to horizontally scale its Recruiting product.
- Designed and built an email-parsing scheduling system that integrates with Google Calendar and
- Designed and built a reporting system supporting independent, user-selected
row and column types, as well as numerous filters.
- Added many features and fixes to the main Recruiting application
- Added new endpoints to the Harvest and Assessment APIs.
- Implemented API rate-limiting in Elixir, using memcached and custom business logic.
- Refactored much legacy code.
- Mentored multiple junior engineers, and taught coding skills to some engineering-adjacent non-programmers.
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'
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.
- Additional projects
- Please refer to the Github and BitBucket links at the top of this document.
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