"It is not the strongest of the species that survives, nor the most intelligent that survives. It is the one that is most adaptable to change". -Charles Darwin
I am constantly learning and adapting to my surroundings; embracing the new opportunities of evolving web standards.
Specialties: OOP Native JavaScript, SPAs ( Single Page Web Applications ), Node.js, React, Ember, BackboneJS, jQuery, Sass, CSS3, HTML5 JavaScript APIs, Isomorphic JavaScript, NodeJS, Python, Django, Redis, Postgresql, Nginx, AWS.
Senior Application Developer @ Full stack JavaScript software development working with Babel, Webpack, Browserify, ExpressJS, ReactJS, BackboneJS, Lodash, Knex, Bookshelf, SASS, Autoprefixer, Foundation, jQuery, Mocha, MongoDB, MySQL, Drupal, and AWS. Played major roles in backend api development, data migrations, as well as frontend development in the site redesigns of fastcompany.com, fastcocreate.com, fastcodesign.com, fastcoexist.com, and fastcolabs.com. Brought on external talent for contract and full time.
• Developed custom gulp build automation tasks leveraging OSS. Tasks included building transpiling, minifying assets for all of fastcompany’s websites. Transpiled both server side and client side javascript using babel. Enabled the team to author in es2015 / es6.
• Enabled code quality tools such as eslint and scsslint running on a precommit hook which maintained a consistent code style and prevented errors.
• Developed testing strategies with babel, mocha, sinon, chai, for unit, integration, and acceptance testing. Ran tests from a precommit hook and mentored developers on TDD.
• Developed custom scripts to scrape urls from sitemaps and log responses; comparing our beta site to production during redesign.
• Developed scripts to migrate data out of mongodb into mysql. Utilized Knex and Bookshelf ORM libraries in nodejs.
• Updated deployment steps in Team City by enabling npm shrinkwrap and removing checked in node_modules.
• Removed custom grid and media queries and replaced with Zurb Foundation’s.
• Developed features from backend to frontend: creating schema and models, routed api endpoints, retrieving data client side with ajax, rendered templates in handlebars, and styled in sass.
• Added record sets in Route53 for subdomain innovationfestival.fastcompany.com integration with SquareSpace. From May 2015 to Present (8 months) Greater New York City AreaSoftware Engineer (Consultant) @ JavaScript software development working with Browserify, ExpressJS, BackboneJS, EmberJS, SASS, Foundation, Mocha, Nginx, MongoDB, MySQL, Solr, and PM2.
• Configured mashery interface at api.mashery.com.
• Developed a custom Grunt build and Ember-cli build for script automation leveraging OSS.
• Developed an authentication layer with ember-simple-auth and passportjs.
• Implemented Nodejs and Client side JS control flow utilizing promises with bluebird and rsvp.
• Mentored team members on writing clean JavaScript with error handling, logging, and tests.
• Leveraged JSDoc3, JS Beautifier, JSHint, JSCS, Mocha, Sinon, SCSS-LINT, and styleguides to maintain documentation, code quality standards, and passing tests in a pre-commit hook and post builds.
• Mentored team members on git best practices with branching, rebasing, squashing commits, and detailed commit message format.
• Worked with Ops to develop deployment architecture, maintaining deployments in jenkins and setting up CentOS environments.
• Developed optimal nginx and pm2 configurations for load balancing nodejs applications.
• Implemented shared session state across multiple nodejs processes.
• Organized meetings with PMs reporting progress and delegated tasks to different teams.
• Worked closely with designers leveraging the Foundation framework’s grid system and plugins for responsive images, video, and ads.
• Provided SEO best practices for single page apps optimizing for non js screen readers/web crawlers/scrapers.
• Set up JIRA agile board with statuses for better insight on what team members are actively working on.
• Developed npm packages for internal service apis, working with the internal user services and passport-auth.
• Developed a nodejs api abiding by json-api in express, mongodb, mongojs, and bluebird to be consumed by ember-data and mashery. From July 2014 to June 2015 (1 year) Greater New York City AreaHTML5 JavaScript / Node.js Software Engineer @ HTML5 JavaScript / Node.js Software engineer for Copilot, the in house CMS Web Application, Vanityfair.com, CNTraveler.com and Condé Nast’s Ad platform. Primary project Copilot was an EmberJS SPA driven by node.js using ExpressJS.
• Wrote various scripts in node.js that took advantage of asynchronous tasks utilizing promises and recursion; fixing api data.
• Wrote an acceptance test suite utilizing webdriver.io, jsdom, SauceLabs, and Grunt.
• Wrote a testing suite for unit tests and integration tests using mocha, should.js, sinon, and chai. Utilized supertest for testing server side express middleware.
• Architected algorithms sorting lists of object literals by time using moment.js and lodash.
• Wrote shell scripts to be executed in Jenkins on deployments.
• Was in charge of tagging, deploying, and enforcing strict version control practices in git and github.
• Architected multibrand configuration and DRY principles for code reuse across brands in the CMS.
• Updated build tasks for template compilation and developed various handlebars helpers/partials/templates.
• Upgraded css styles build from less to sass with node-sass and libsass, cut build time from 1.6s to 300ms.
• Used advanced responsive techniques creating sass functions and mixins in combination with bootstrap-sass.
• Implemented an hbs view layer in the express app that bootstrapped configuration data per environment.
• Added debugging scripts to the development process utilizing sourcemaps in JS/sass on the client and node-inspector for debugging with breakpoints on the server.
• Added livereload configured with using browserify and watchify programmatically with libraries loaded in from NPM and Bower.
• Brought production JS down from 2mb to 330kb minified with uglifyjs2 with an input of extracted sourcemaps from browserify, that integrated into Rollbar for linenumbers on error reporting in production.
• Added caching to server layer and versioning of static assets on deployment. From September 2013 to November 2014 (1 year 3 months) Greater New York City AreaSenior Front End Engineer @ JavaScript Web Application Developer for UrbanDaddy maintaining UrbanDaddy.com, Driven.com, and upcoming projects which rely primarily on JS and HTML5 technologies as a single page application. Utilized GRUNT JS build process for Linting (JSHint, VNU), Minification (Closure, HTMLCompressor), CSS optimizations with SASS/Compass/DeadWeight/ImageMagick png conversion to Base64, JSDoc Toolkit, Unit Testing (Jasmine, Qunit, JSTD), and other customized project specific tasks written in NodeJS and Grunt. Worked with frameworks such as Backbone js, Spine, Ember, jQuery, Zepto, Require, Jasmine, Qunit, JSDocs, UglifyJS, Google Closure Compiler, HoganJS/Mustache, and various jQuery plugins such as Infinite Scroll, Isotope, Inview, Images Loaded, Autocomplete, and jCarousel. Implemented the latest Mobile Web Animation strategies utilizing RequestAnimationFrame JS Api and CSS3 Transforms. Built out a responsive system using CSS3 media queries targeting mobile, tablet, and desktop dimensions. Integrated template sharing configured with Django's Template language and Plate.js. From August 2012 to 2013 (1 year) HTML5 JavaScript Application Developer @ JavaScript Web Application Developer for http://theSwizzle.com originally Keep.com. Worked with HTML5, CSS3, JavaScript, jQuery, Handlebars, HTML5 History, Facebook JS API, Twitter, Pinterest, and Google+ Integration, SEO Google Analytics JS Tracking Event API, Mixpanel, Skimlinks JS API, HTML Email, and Python 2.7. Individually wrote the Facebook and Email Onboarding utilizing OOP JS and Facebook API to retrieve User Likes to the matching Brands in our database. From November 2011 to August 2012 (10 months) Greater New York City AreaTechnical Developer (JavaScript & Flash) @ Developer on the Adkeeper Keep Buttons: JavaScript, Flash ActionScript 3, Flash ActionScript 2. Built prototypes in both JS and AS3 for UI variations for the buttons as well as developed and designed testing with various JS frameworks and Native Animation. JavaScript debugging in both development of the buttons and final tier support for clients such as Lenovo, JetBlue, Lowes, and Bank of America. Educated employees on technical skills with Atlas, DFA, Flash and JavaScript. Developed solutions for approvals to MSN, and Yahoo. As of February 2011, the Adkeeper button has generated over 4.5 Billion Impressions. From February 2011 to June 2012 (1 year 5 months) Greater New York City AreaSolutions Architect @ DBA as High Def Web Designed maintained Full Stack role from Sales, Client Communication, Art Direction, Design, Front End Web Development, Back End Web Development. Managed several clients and a team of 3+ over a 7 year period. See http://michaelbenin.com (Website made December 2010) for this 7 year period and previous resume. From December 2008 to January 2011 (2 years 2 months) Greater New York City AreaPost Production Digital Artist @ Digital Imaging in Adobe Photoshop for print and web. From July 2003 to July 2003 (1 month) Greater New York City Area
Advanced JavaScript, INFO1-CE9766001 – Advanced JavaScript @ New York University From 2012 to 2012 BA Communications, Radio TV Film @ Marist College From 2007 to 2009 BS Digital Media, Digital Media, Computer Science @ Marist College From 2003 to 2007 Masters of Science, Information Technology and Systems @ Marist CollegeHTML5 Canvas ClassJavaScript MasterClass Michael Benin is skilled in: JavaScript, AJAX, JSONP, HTML5, HTML, CSS, CSS3, NodeJS, HTML5 Canvas, WebSockets, JSON, Photoshop, Flash Professional, Illustrator, HTML emails