For the last several years, I've been concentrating on web development with node.js, often using Express and Sails.js, generally designing the architecture of and building out RESTful JSON APIs. I've also done a fair amount of single-page apps in JS, sometimes in Ember.js, sometimes backbone, and I've become interested in React and React Native. I've been using Postgres a lot lately, some Redis, and sometimes Neo4j for graph database functionality and MongoDB for more amorphous document stores.
Before 2012, I did a lot of traditional LAMP-stack work with PHP, MySQL, and the usual HTML5/JS/CSS on the front end.
I've joined Identified Technologies to bring my full-stack JS and RESTful API experience to expand the communications platform for industrial aerial robotics. I’ve built out the company’s API (in Node/Sails.js) for receiving, processing and delivering data collected from UAVs, making extensive use of AWS services. I’ve rebuilt the front-end in Ember.js (2.x) for the customer-facing system, and integrated the system with the Google Maps API, added volumetric display and analysis functionality, and have lately been working with PostGIS for more efficient delivery of spatial information, as well as mentoring other members of the team.
At TEN, I rewrote the company's mobile data collection app in Sencha Touch (JS/HTML5 compiled to a native iOS app with Cordova), and in eight months brought this JS/HTML5 version to feature-parity with the previous iOS version (including several asked-for upgrades), which had taken four previous Objective-C developers two years.
Prior to that, I re-architected the company's Node-based API to use clearer structures in its data store and Neo4j (instead of Allegrograph). I improved the API design with more intuitive URIs and worked dynamically with other team members to replace the current infrastructure in dramatically less time than it took to create the initial codebase. Technologies used: Node.js/express.js, Neo4j/Cypher, MongoDB, mongoose.js, Redis, MySQL.
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 github repo. I took over some server administration duties, including managing AWS EC2 instances, configuring Haproxy to deliver our CORS-compliant API over SSL. 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 was trending toward agile methods with the help of PivotalTracker, and we managed several simultaneous code branches in git.
As an employee of Wall-to-Wall Studios, Inc., I was asked to work on a new implementation of the company home page, which involved a dynamically repositioning display of the company's latest projects. I did the CSS and leveraged the Isotope JS library for tiling and dynamic placement. It looks and works great, and scales to all kinds of widths.
Here's a new site for Family Resources of Western Pennsylvania, built on the latest version of the Actual Size CMS. We did a full restructuring of our admin interface, and there's a lot of gorgeous work on the front end from the Actual Size team. My role was to design the data structure (MySQL) and do the dynamic server-side scripting (PHP MVC Codeigniter), coordinating closely with our designers and front-end developer. Significant challenge: integrating (successfully!) two different flavors of PayPal clearing for donations and benefit purchases.
I'm dealing with Bad Neighbor Effect. Fortunately this is just on a database server, and not in our real neighborhood.
Another new site, for hockey blog TrueHockey. The excellent, bold design was done, of course, by our fine team at Actual Size Creative. Notable problem solved: there are a lot of different types of content, many of which behave slightly differently, but all need to be aggregated in some places, and performance needs to be responsive. I structured the database with this in mind, doing a combination of discrete tables for presentation and aggregated tables for searching. Another interesting problem was commenter authorization, so the site offers login through a native system, Facebook, and Twitter, each of which are, of course, rather different, but the behavior is consistent for users from each. I coded the CMS and dynamic front-end in PHP MVC framework Codeigniter.
So, Twitter @Anywhere authentication, who's laughing now, huh?
I'm bringing you a better tomorrow today, but isn't sure what will fill the vacuum where tomorrow was going to go.
A really nice new site, for The Century Council's Ask, Listen, Learn program. I built and structured the database, coded the CMS and dynamic front-end in PHP MVC framework Codeigniter, and did a fair amount of the front-end implementation, working closely with Steve, Actual Size's new front-end developer. Possibly the part of the site I'm proudest of: when you sign up and upload your photo, my code dynamically creates a baseball card for you. You choose colors, text, icons, etc., and we give you a custom graphic. Pretty slick, and there's a lot of neat stuff going on here.
I just told someone "I'll be in the bit-mines."
Yet another day of PHP programming, and still no flying teapot in sight.
A certain kind of software developer, if he was building a house, would lavish great time and attention on an elaborate and possibly revolutionary scheme to replace all the doorknobs with something "much better," but meanwhile none of the bricks would be mortared together, because people have already solved that problem in other houses.
At FlashPitt. The MMO in Flash session is compelling--nice to see MVC in Flash/Flex...not that I'm going back into Flash anytime soon.
Fun with prototype.js!
New site for Actual Size Creative!. I designed the database structure (MySQL), scripted the front end and CMS in the PHP MVC framework CodeIgniter, and spent a lot of time with prototype.js and scriptaculous for the animation. Some tricky stuff here, and a great design by my co-workers.