Summary/Skills
I'm a full-stack developer of websites and web applications for all kinds of clients. I usually work in Node.js or PHP, usually with an MVC framework (express, CodeIgniter, CakePHP), often with MongoDB and Redis or MySQL for persistent data, but I can work with any NoSQL or SQL. On the client side, I do plenty of JavaScript (sometimes with jQuery or other libraries), CSS (a lot of sites used less.css), and HTML5. I've created CORS-compliant RESTful JSON APIs, built many CMSs from scratch, and worked with off-the-shelf CMSs as well. I've built sites with complex data sets, lots of dynamic animation and DOM manipulation, complex designs, integrations with APIs from DocuSign, Stripe, Facebook, Twitter, PayPal, and others.
Lately I've been learning AngularJS and Coffee-Script, and updating the Node module for Balanced Payments. A typical day is spent in the terminal (I like zsh) and BBEdit (I use regular expressions a lot), and for front-end code, the Chrome and Safari dev tools. I've logged a lot of Photoshop and Illustrator time. I've done Flash work, but prefer JavaScript and Canvas animation. I use git for version control, and prefer developing with testing suites and assertion libraries.
Work Experience
Developer, Net Minds Corporation (Pasadena, remote), May 2012 to May 2013. Looking for a chance to branch out in new technologies, I joined the early-stage startup Net Minds to help build out its app/service. Responsibilities included building a web-based RESTful JSON API in Node.js (using express) with a MongoDB database (with a mongoose.js interface), and Redis for storing sessions. The product needed to interface with third party APIs for user authentication (Facebook, Twitter, LinkedIn, Goodreads, Google+, github), Stripe's API for payment processing, DocuSign's API for document signing (although we also tested several other providers), and I worked toward interfacing with Balanced Payments' API, continuing development of the node-balanced npm on a forked repository. I took on some server administration duties, including managing AWS EC2 instances, configuring HAProxy to deliver our CORS-compliant API over SSL, and interfacing with the Mongo instances on ObjectRocket. I participated in planning and strategy meetings, designed database schemas (in MySQL) and pseudo-schemas (in mongoose for MongoDB, which is ordinarily schemaless), and interfaced with the front-end development team, who were building an Ember.js app to handle user interaction and asset presentation in the browser. Task management trended toward agile methods with the help of PivotalTracker, and we managed several simultaneous code branches in git.
Interactive Developer, Wall-to-Wall Studios, Inc., April 2011 to May 2012. Responsible for interactive scripting in PHP and JavaScript of dynamic websites, HTML and CSS3 implementation of striking, challenging designs. Some of these were served on the company's custom CMS (CakePHP with Ruby generator scripts and Capistrano deployment), some in WordPress, some Flash, and in some cases other kinds of technologies. Requirements included participation during the design process to determine feasibility, recommending approaches and solutions, interfacing with designers to bring to the web the company's advanced, inspiring creative and design sensibility. Notable sites included these:
Burgatory.com: I coded in PHP/MySQL/CSS/JavaScript development on top of WordPress for this site, which offered a number of design challenges: I needed to use CSS mask channels to texturize graphics and text. The home page features large burger/shake images that move independently of what's around them--as do their shadows, and they swap with a subtle fade. Other features include a responsive design that scales down to mobile, complex CSS (including masks for texture), a custom design of the embedded Google Map with extensible pointers as restaurants are added, and integration with NoWait (including amusing Wall-to-Wall explanatory text), MailChimp, and PayPal APIs.
Carnegie Mellon University Qatar (qatar.cmu.edu): Unlike Burgatory, this site was on Wall-to-Wall's custom in-house CMS built on CakePHP with Ruby generators and deployment with Capistrano. The challenges included a design that required dynamically resizing full-bleed images, custom large-image galleries on many pages, and a user-extensible home page with parallax scrolling.
Lead Web Developer, Actual Size Creative, January 2009 to March 2011. Responsible for taking web projects through the full development cycle, from setting requirements and capabilities with customers, recommending technologies, approaches, and solutions, planning database structure, setting development milestones, and coordinating members of the development team, as well as coding, testing, problem solving, and launching projects. I worked mostly in PHP, MySQL, and MVC programming frameworks such as CodeIgniter. I coded Facebook and Twitter apps for user authentication and one-stop posting, and worked with other APIs like PayPal. There was a fair amount of front-end work as well, in JavaScript/AJAX, JQuery, Prototype, Photoshop, Flash, and Illustrator. I handled version control with Subversion, Git, and Mercurial. I've also worked with off-the-shelf CMSs such as Drupal and Wordpress. Notable web development projects include Family Resources of Pennsylvania, TrueHockey.com, AskListenLearn.com, and ThisIsActualSize.com.
AskListenLearn.com presented some interesting challenges. As with other sites, I built and structured the database, coded the CMS and dynamic front-end in the PHP MVC framework Codeigniter, and did a fair amount of the front-end implementation. I'm proudest of the site's dynamic image generation tool: users who sign up can upload a photo, select designs and colors, interests and icons representing them, and the site returns a custom baseball card.
Freelance Web Developer and Consultant, May 1996 to Present. Responsible for programming, design, and production of web sites, including user interfaces, commerce systems, complex Flash animations interacting with databases and XML files, and admin interfaces for content and product management. I built the social network SavingTheWorld.net (in PHP with CodeIgniter), and also SomaliaReport.com, Iraqslogger.com, Cubabusiness.com, and Pollposition.com, for which I built complete, multi-author publishing workflow and subscription systems for global 24-hour news agencies. Other clients included publisher Harry N. Abrams, Inc., Washington Mutual, the Environmental Defens...
Login or Register to view the full resume.