Software ArchitectJarvis Badgley

Full stack developer with 20 years of experience creating content for the web, building everything from the back-end server architecture and database design to the page layouts and dynamic front-end interactions. I have constructed sites of all sizes, from single page applications to large multi-page cross-domain CMS engines and e-commerce storefronts. Since 2010 I have worked fully remote from my home office in San Diego, California as both a team member and as a team leader.

Skills

Programming Languages, Concepts & Software

  • JavaScript20 Years✭ ✭ ✭ ✭ ✭
  • NodeJS3 Years✭ ✭ ✭ ✭ ✭
  • HTML & CSS20+ Years✭ ✭ ✭ ✭ ✭
  • LESS / SCSS2 Years✭ ✭ ✭ ✭ ✩
  • PHP13 Years✭ ✭ ✭ ✭ ✩
  • MySQL10 Years✭ ✭ ✭ ✭ ✩
  • Git / SVN7 Years✭ ✭ ✭ ✭ ✩
  • Selenium1 Year✭ ✭ ✩ ✩ ✩
  • Redis2 Years✭ ✭ ✩ ✩ ✩
  • MongoDB< 1 Year✭ ✩ ✩ ✩ ✩
  • RabbitMQ< 1 Year✭ ✩ ✩ ✩ ✩
Open Source Projects

Queryize Lead Dev http://queryizejs.com

Queryize is a chainable query builder for MySQL on NodeJS. Built to serve as a lightweight alternative to full ORM stacks, Queryize makes it easy to construct complex queries programatically, while using bound parameters for proper data escapement. The website for QueryizeJS is an online API reference generated from JSDoc comments in the Queryize source code itself.

Kalendae Lead Dev http://kalendaejs.com

Kalendae is a JavaScript date picker library written out of frustration with all other date pickers. The library is entirely self-contained and does not depend on any other DOM manipulation libraries such as jQuery or Prototype.js. It supports multiple types of date selection, including range selection, and is fully skinnable through CSS.

ChiperSoft.com Owner https://github.com/ChiperSoft/chipersoft.com

My own tech blog is a static site built using a custom written gulp.js process. Multiple gulp plugins work in congress to build the markdown, less and handlebars template files that make up the source material, compiling them all together into static content served by GitHub Pages.

Dox Maintainer https://github.com/tj/dox

Dox is a JSDoc parsing library built by TJ Holowaychuk which reads JavaScript source files and outputs a JSON structure representing the contents of the comments contained inside. On March 18, 2015 I became the lead maintainer of the Dox project after the previous maintainer found himself too busy with other projects to give it the attention it required.

Taut.us Creator https://github.com/ChiperSoft/taut

In early 2016 I explored creating a web driven IRC client structured in the same manner as the Slack team communication service. The goal was to create an IRC client that would be as easy and pleasurable to use as Slack in order to encourage open communities to use public protocols instead of a siloed forum. The application was built in a multi-tiered architecture in order to enable easier scaling and redundancy. I chose to built it around the Freenode IRC network as a single gateway in order to simplify the user experience. Unfortunately privacy requirements by the Freenode network required a restructuring of my data management, and the project stalled. Bugs and a lack of available time led me to shutdown the site after 10 months.

Experience

Shutterstock Software Engineer - July 2015 to Present

Fullstack developer on the content operations team, maintaining the internal applications used to review new content submitted for sale and manage existing content in Shutterstock's library of stock images and video. This involves front-end JS development in Backbone and React front-ends built on top of a Service Oriented Architecture of NodeJS and MySQL.

While working at Shutterstock I built and launched three new API services, two RabbitMQ workers, created a MySQL database library that is now used by four different teams, constructed a Selenium driven mid-level integration test suite, and helped to maintain two NodeJS powered web apps.

Valuation Vision Senior Engineer, Technology Consultant - October 2013 to July 2015

I was hired by the V2 development team to help with application scaling and architectural concerns as the company's product demands increased. Within the company I served as a driving force in migrating to newer technologies and teaching more maintainable development techniques via regular training sessions.

I was instrumental in efforts to modernize and clean up the codebase, introducing the use of Backbone and Handlebars to simplify our front-end logic, and adding NodeJS into our back-end development stack in order to drive real-time pieces of the application, including a websocket powered real-time order pipeline. I also introduced the team to d3.js for creating dynamic visualizations of our application data, and trained my teammates in its use.

Synacor, Inc Senior Frontend Engineer, Project Lead - January 2013 to October 2013

Responsible for developing new features on Synacor's TV Everywhere media portal product. This primarily consisted of the creation of new JavaScript libraries and JS driven front-end components used to make up page layouts, as well as the creation of HTML templates and CSS styling to shape those elements.

When I departed Synacor I was serving as a team leader on the version three total rewrite of the product, built on a Java backend using Service Oriented Architecture. I created the front-end framework for loading Backbone Views dynamically using hooks in the HTML, and a Grunt driven LESS compile process for selectively aggregating component css.

This position was fully remote from my home in San Diego, communicating with my team members in Buffalo, New York via company chat and Skype. Synacor has a strong unit testing policy (PHPUnit, Jasmine and QUnit) and uses Agile project management.

NFY Interactive, inc. Senior Web Developer - 2008 to 2012

Solely built and deployed nearly two dozen custom CMS applications for third party clients. This was a full stack development position and included designing MySQL databases, constructing backend infrastructure in PHP, breaking out design compositions into HTML and CSS layouts, and writing any client side Javascript to drive dynamic elements on the site.

Abtech Systems Systems Technician - Carlsbad, CA - 2007 to 2008

  • Built, refurbished, configured and troubleshot HP & Compaq Servers and Workstations running both Microsoft Windows and HP-UX Unix.
  • Responsible for testing all components and systems prior to shipment to customers.
  • Worked with salesmen to fulfill customerʼs needs and expectations.

While working at Abtech I wrote a desktop application for rapid processing of available inventory. The app took input from barcode scanners and processed it into csv files that could be later merged and rapid checked against our inventory database. This app replaced a complicated process of entering serial numbers into Excel spreadsheets, increasing the efficiency of our auditing process by 30%.

WebOS.com Front-end Developer- Columbia, MD - 2000 to 2001

Telecommuting from my home in San Diego, I worked with a team of programmers based out of Maryland to design a JavaScript implementation of the Java Swing API for building real-world applications in the web browser. The work we conducted established the foundations of techniques and systems employed in Google's earliest applications and in the Palm/HP webOS. We were doing AJAX six years before the term existed.