Thinkful.inc 2017-02-15 —
ZCo Holdings 2015-11-15 —
Acesse bought a startup (www.fantasycoach.com) that my friends are I were rewriting on weekends in Backbone Marionette, and offered us full time employment
- Co-Designed a Hapi JS Server that proxies to microservices (docker containers), as well as to Webpack Dev Server which serves React Components (modules)
- Docker Swarm is utilized to manage the health of our microservices in AWS
- Developed a React + Redux + react-router + react-bootstrap based site for entering E-Sports competitions (currently CS:GO), complete with ~300 unit tests. This site was fully internationalized (i18n) with the use of reat-globalize and deployed in Singapore
- Utilized `faker` + `json-server` to write fake data services for use with rapid prototyping React + Redux apps
Walmart Labs 2015-04-08 — 2015-11-15
I worked for Walmart Labs - the leading e-commerce platform in the world. Labs provides open source solutions to complex problems.
- Designed a Hapi JS plugin that aggregated API calls with server caching which withstood 4.3 million page views per hour for the Sam's Club VIP Sale.
- Developed speech recognition prototype utilizing Angular 1.4.x, Babel, ES2015 and WebPack
- Implemented a 'heartbeat' plugin that displays statistics including load, memory usage, current tag for each repo, API endpoints, and more that also serves as a means for the T2 load balancer to check that health of the node instance for a given VIP
- Transitioned m.samsclub.com from a legacy Bentonville datacenter to OneOps - Walmart's soon to be open source OpenStack cloud computing platform
- My team supported the Angular team's Cart and Checkout redesign for 2015 by serving / mutating desktop APIs into a format consumable by Angular
- UI and Node JS efforts raised 0.02% conversion in February to 0.08% conversion by EOY
The Creative Circus 2015-09-15 — 2016-03-15
- Node.js - How to build a server using Node JS and Hapi (https://github.com/zedd45/2015-fall-creative-circus)
Keen Concepts 2014-04-08 —
- Vunify (http://www.vunify.com): Integrated Gulp, allowing our front end process to JSHint, Concat, Minify, run tests, and compile Less CSS. Karma + Jasmine 2.0 (jQuery+AJAX) ran our Unit Tests for our Backbone code. These tests were integrated into codeship.com for continuous deployment to production via Heroku
- Vunify: Refactored existing Algolia interface via a Python abstract class which aggregates the response for Multi-Queries (cross-collections - in this case, programs, playlists, and 'channels') into a single HTTP response for search results.
- Vunify: Created a series of User Playlist tools, via Backbone synced to MongoDB via Flask RESTful, including custom hero images via Heroku + Cloudinary.
- Vunify: Utilized Backbone and D3 with Epoxy to create a real-time dashboard of user statistics.
- Created an energy-usage geo-vis using Gulp, Karma, browserify, and Leaflet.
- Walmart Labs: Extracted the Hapi server code to it's own repository, and included it in the CanJS stack and the Angular Proof of Concept for m.samsclub.com
- fantasycoach.com: Refactored UI using Marionette JS. These modifications included UX and speed improvements. Load times improved by an order of magnitude.
- Randstad USA: consulted on talent search intranet website written on a Google Compute MEAN stack. I added a custom single signon component with session management via Express
Travel Syndication Technologies (AAA) 2013-07-02 — 2014-04-08
TST provides dynamic travel booking and packaging solutions for AAA Clubs (and others)
- Configured SBT to allow for Grunt JS + Scala Play integration.
- Switched Less & Require JS from Playframework / SBT to Grunt management, allowing us to remove Rhino and thus decrease compile times by an order of magnitude. Additionally removed hard-coded version dependency for less in playframework, allowing us to upgrade to BootStrap 3
- Designed a Gruntfile that utilized Q (promises) to call npm install, then bower install, then a build target for each sub-project (via grunt-hub) in a reliable, race-condition-free manner. This allows local dev and the build process to use the same top level design for generating assets
- Created a white label project that uses Grunt to ingest html components into a template, with commmands for validation, and pushing to GIT + Jenkins for automated deployments
Infor 2013-02-01 — 2013-07-02
I consulted on Infor Ming.le™, a comprehensive platform for social collaboration, business process improvement, and contextual analytics. From collaborating alongside core systems like ERP or financials to “following” people and objects, Infor Ming.le™ lets you get work done in ways you never thought possible.
- I consulted on the architecture and implementation of a custom framework including jQuery plugins and page components for Infor Social (Ming.le) – a SSO platform used to create a single place to manage a company’s data across a suite of products
- Engineered a Smart Dialog utilizing HTML5 contenteditable that populates a suggestion list on user input (autocomplete) for tagging users and groups within the organization. Interactions include 'tagging' a user (visual aesthetic inside of the contenteditable div), keyboard selection via arrow / enter keys. The component stores the tag to process notifications to tagged users & handles privacy levels for posts
- HTML5 Bulk upload component, utilizing feature detection to instantiate Flash (Uploadify) fallback for browsers that don’t support File API
- Overlay / Dialog component supporting dynamic content that ‘conditionally’ binds event listeners for re-centering and closing (upon close button click or esc key)
- Infinite Scroll component with a custom callback feature to fire programmable actions when it detects user has reached the ‘end’ of the current content
- Implemented namespacing conventions / file structure to reduce maintenance overhead ($.extend with detection to prevent ‘clobbering’ existing namespaces)
- Added Mocha JS with Sinon JS & Chai JS to test plugin components and custom framework integration
CrowdStrike 2013-02-01 — 2012-04-01
Real Time network intrusion detection and monitoring.
- Authored an API to index data using Ruby Sinatra to respond with paginated JSON with DynamoDB integration, including a file processing queue using Amazon's SQS. I wrote a UI in Handlebars utilizing JSONP, complete with HTML5 validation, and a light-weight, custom infinite scroll handler to fetch more results on scroll. I completed this effort by adding unit tests for the API (RSpec), and UI (Mocha)
- Contributed to the development of Ember JS 'widgets' written in CoffeeScript. We utilized Ember Data for REST calls, data persistence, and to handle state (loading/error) transitions
- Populated JSON responses via Express JS wrappers that aggregate data from API calls. We used mocha to test both the Express and client Ember unit tests
Endgame Systems 2010-07-06 — 2011-11-12
EGS provides Instant Detection and Active Response To Advanced Threats with Endgame Enterprise
- I utilized Python / Django with jQuery to create the front end and several NoSQL stores including Cassandra, Accumulo, Hadoop, and Solr to sift through large amounts of data
- Implemented several visualizations ranging from simple charts created with jQuery's Flot, to interactive tables using jQuery dataTables
- Crafted a replacement for Google Earth Enterprise product using OpenStreetMap data and tiles styled in TileMill, served by TileStache, with interactions powered by Leaflet JS. This effort saved ~$500,000 per deployment (the cost of an enterprise GE license)
The Weather Channel 2010-07-06 — 2011-11-12
The Weather Channel and weather.com provide a national and local weather forecast for cities, as well as weather radar, report and hurricane coverage.
- Mobile-first web redesign: we used zepto.js for light-weight, cross-platform event handling (such as swipe), and used cutting edge RWD and CSS3 technologies to render a fast and friendly experience to mobile users
- Integrated Twitter into weather.com. I worked on components, including a SVG 'Tweet' Map that would present a carousel of weather-related tweets specific to a state when you clicked on the state
- Interactive Map Redesign: we created an HTML5-friendly static weather map, and integrated with Flash to create a rich experience by overlaying weather tiles on map tiles
AutoTrader.com 2008-03-01 — 2010-07-06
AutoTrader.com connects private sellers and dealers with customers by providing a dynamic, innovative marketplace platform.
- Proposed and implemented changes to the code that controls Ads on the front and back end in order to have a consistent, concise, performance optimized solution.
- Ad Serving Subject Matter Expert (SME).
- UIE project lead on several projects, including: AutoTraderClassics.com (post-launch), Consumer Site Loyalty / MyATC.
- Responsible for managing and maintaining the UIE code review process.
- Sole developer on two site-wide, high profile initiatives (Ads Framework Upgrade, Marketing Homepage & Header banners), while engaged on a third, mission critical project (Next Generation Model Info).
- Created UI components for the Model Info page that emit & listen for name-spaced jQuery events and re-render areas of the UI based on the event. (pre-backbone)
- Authored UI controls on the find your car page allowing users to select by body style tiles, and revising the AJAX powered drop-downs that allow selection of make & model
- Created JS controller to power ad targeting changes via AJAX calls for a research page component
- Integrated the Flash “hero” homepage ad and background images for site header into the CMS.
- Encouraged and participated in the addition of jQuery to AutoTrader.com
- Solitary engineer on Maintenance for AutoTrader.com for several months. Responsible for all issue resolutions, including production emergencies. Required to support multiple platforms / browsers.
Intuit Financial Institutions Division 2004-11-01 — 2008-03-01
Intuit Financial Institutions Division provides websites with integrated internet banking solutions.
- Worked with jQuery to create rich interactions from carousels to dynamic crossfading banners
- Worked with 'big tier' banks (igobanking.com, flushingbank.com etc) to create rich interactions and visuals
- Customized Internet Banking visuals with jQuery
- After hours support responsible for completion of all SLAs for the day
- Organized and executed the development of intranet resources for training new QA employees
- Documented and published standard operating procedures for the QA department.
- Video Game Libraries 2012
- Grunt 2013
- Gulp 2014
- Hapi JS 2016
University of Georgia 2003-06-01 —
University of North Georgia 2000-01-01 — 2006-06-01
Customer Service Recognition Award
I Make a Difference Award
Front-End Frameworks (and libraries)
- Google Maps
- Bootstrap 3
- Angular 1.x
- Less CSS
Server / Middleware
Node Build Tools
Chris is a proactive and thoughtful technologist who helped to accelerate our product development efforts at Vunify. He is passionate about his work, and actively communicates with other developers and product managers throughout the product lifecycle. Chris understands how to balance often competing business and technology goals to achieve access for the organization. He is an asset for any organization.
— Jon Bradway
Chris was initially highly recommended to me by someone I trust. From initial contact, Chris has been a pleasure to work with. He is an extremely competent UI architect with a true passion for technology. He's conscientious, innovative, reliable, dedicated and genuinely cares about the team he works with and about building a quality product.
— Renata Nedzynski
— Adam Brons
It's always been a pleasure working with Chris on several projects at The Weather Channel. Chris is a great team player and excellent go to person to bounce off ideas. Not only a very innovative and keen developer, Chris is also an effective communicator. His ability to articulate and explain problems at hand really help streamline our projects and making them the successful ones. Chris brings a lot of value to our projects particularly with his well of knowledge in html/css. Chris certainly is a great asset to any team.
— Jeff Lu
— Tim Francis
Working with Chris is a very pleasant, fun and highly productive experience. Chris' genuine passion for top-edge technologies and intelligent solutions makes him not only extremely active within the company, but deeply engaged in everything that is going on in the project at hand. This "eagle's eye" trait makes him able to jump in to help on whatever issue there may be, applying the appropriate skill set. On top of that, he is a very communicative and eloquent person, which is a big plus when working with other engineers - an analytical mind is no use without being able to express ideas well. I'm happy to have him as a coworker.
— Guilherme Sad Gorgulho
Chris Keen is a real asset to any team. He is able to solve tough problems and never backs down from a challenge
— Anthony Pardo
— Eric Gisler
Chris was very detailed, goal oriented and produced high quality results for me on various projects. Chris is a great fit in any culture, and was liked by everyone in the office. He is considered an authority by many in the tech space and would make a great addition to any web team. A++ highly recommended. Will definitely work with again.
— Joey Taylor