Portfolio

Amazon

APS Connections Marketplace - aps.amazon.com

  • Frontend lead for the Amazon Publisher Services, Connections Marketplace (CXM)
  • Similar product as the AWS marketplace, integrating 3rd party offerings into the Amazon advertising ecosystem
  • Owned the product end to end, including various systems
  • Rails/React "portal" application for publishers to browse 3rd party offerings, and integrate it with their websites
  • Additional "portal" UIs for admins and vendors
  • Implemented support for various 3rd party solutions into Amazon's advertising JavaScript SDK
  • Owned components of Amazon's advertising exchange server for integration 3rd party solutions
  • Participated in the hiring process, primarily acting as a shadow for equal rank engineers, and conducting interview for interns myself
  • See screenshots

CXM - Product Expansion

  • The first year of working on the project, I was tasked mostly with UI improvements and adding new vendors
  • In the MVP state of the project, new vendors had to be added via manual DB rails migration scripts
  • The data structures used in the initial design were often obscure, and required tedious DB insertions, delaying release times for new vendors by roughly two weeks
  • Implemented UI v2.0 for publisher landing page as well as different admin pages for account manager use
  • Introduced new vendor categories such as: Creative Formats, Adblock Recovery, and Contextual/Bidder Signals

CXM - Admin Self Service

  • Built admin page with several components for creating, maintaining, and releasing vendors onto the publisher portal
  • Initially implemented half of the features with collaboration from product + UX, this involved two components which enabled the management of a vendors "integration steps" and their fundamental metadata
  • The two remaining components were for the metadata and onboarding questions, which I took the initiative and both designed and developed
  • To achieve a completely engineer free release of a vendor, many entities that were hardcoded had to be refactored into the DB using the rails ORM
  • After completing the self service feature, the release time for a vendor was reduced 98% to only 30 minutes

CXM - Vendor Dashboard

  • Implemented entirely new user type to the APS portal for CXM vendors
  • Built a new UI so that vendors could manage their own potential publisher integrations
  • Worked around many backwards incompatible assumptions created by the MVP state of the project
  • Collaborated with the product and sales teams to overcome these challenges, and DELIVERED the feature ahead of the scheduled timeline

CXM - Generic ORTB Vendors

  • As the product scaled, the team needed a way to scale the vendor additions beyond automating the releases into the portal
  • This primarily entailed creating an E2E design so that publisher vendor integrations could be activated immediately regardless of the nuances of the vendors features
  • Initially the goal was to focus on creating a design to enable the automation of vendors within any categories relevant to the ORTB spec (Identity, Bidder Signals, Contextual, Etc)
  • Over many iterations with various engineers and sister teams, the design expanded to include a vision for a completely configuration driven path for releasing any type of E2E
  • After negotiating with product and working around some last minute regulatory challenges (DMA, cookie deprecation), we delivered a MVP version of the design for only the ORTB vendors
  • Implemented the frontend of the MVP myself, and delegated the majority of the Advertising Exchange service to another engineer on my team, ensuring the design vision was followed

The Home Depot

Sponsored Content

  • Integrated sponsored content across homedepot.com
  • Owned the API responsible for serving sponsored data as well as all the frontend components
  • API integrates with third party auction platform that dynamically serves content based on a vendor's budget and bids for specific ad space
  • Frontend components include product carousels, individual products, and banners
  • Tracking user behavior to charge vendors per views and clicks, and to measure purchases resulting from the sponsored content
  • Spring Boot, Maven, Google Cloud
  • See screenshots

Content Page Renderer (CPR)

  • The CPR application is responsible for rendering the home page and all other content pages
  • A few content page examples include: Home, Local Ad, Tool & Truck Rental, Credit Center
  • Owned this application with two other engineers. Responsible for reviewing code from contributing teams, doing deployments, and adding other foundational features
  • Lead the direction of the frontend build system
  • Migrated from RequireJS to Webpack
  • jQuery, Spring Boot, Gradle, Google Cloud

Browse & Search Service (BASS)

  • BASS is the frontend search application which serves the category landing pages and the product listing pages
  • Owned this application with several other engineers
  • Responsible for reviewing code from contributing teams, doing deployments, and adding other foundational features
  • Rewrote the build system from Grunt to Gulp, reducing build time by 99%
  • Implemented the "Get It Fast" filter, allows users to see products by how quickly they can be delivered
  • Reimplemented the mobile "Sort & Filter" overlay, adding a sliding animation and other design changes
  • See screenshots

Google CDN Migration

  • Migrated all frontend application static files to be hosted on Google's CDN
  • Created a process for building, versioning, and uploading files in our CICD pipeline to a Google Cloud Storage Bucket
  • Implemented this process across 3 applications: CPR, BASS, StoreFinder
  • My implementation was then copied by all other frontend applications where I provided guidance as needed
  • See screenshots

HeaderFooter Independence

  • The CSS and JS for HeaderFooter was bundled inside of every application
  • The goal of this initiative was to decouple application releases from updates to HeaderFooter
  • To do this, I had to remove HeaderFooter dependencies from each application and then create separate external bundles for the CSS and JS
  • These external bundles were then hosted on the Google CDN, and loaded prior to the application bundles
  • After testing this implementation in the StoreFinder application, my approach was then copied by all of the other frontend application teams
  • See screenshots

Localization Standardization

  • Normalized the frontend component apis provided to other teams for them to access a users localization information
  • Over time, too much custom code had been written to access user localization information, eventually small differences in this code began creating severe bugs where localization information became corrupted or could changed randomly
  • The bugs resulting from this often caused an order to be sent the wrong store, costing millions in losses every year and inflicting brand damage
  • For this feature, I had to migrate all applications and libraries dependent on localization information to use this new component
  • I made the changes to every project myself, and it included over 20 applications and libraries
  • In addition to the frontend changes, I also had to remove all localization logic from the backend of every application, and refactor them to localize the user on the frontend

General Motors

Owner Center - my.gm.com

  • Single page application using AngularJS and Spring
  • Integrated OnStar services into Owner Center
  • Built components where users could view and update their information
  • Remote vehicle WiFi configuration
  • Payment method and subscription settings updates
  • Driving and data usage statistics dashboards
  • See screenshots

Personal Projects

Tax Calc - Demo

  • Angular app bundled with Gulp and Webpack
  • Allows user to create their own marginal tax rate schedule
  • Calculates and graphs effective tax rate by income
  • Source code

Phonegap Calculator - Demo

  • Simple calculator web app built with jQuery
  • Meant to be packaged with phonegap as a mobile application
  • Provides basic calculator features and exponetiation
  • Source code

CSS Experiments - Demo

  • This page is a collection of CSS only animated widgets and effects
  • I built these for fun to stretch my CSS knowledge and to see what could be done with some SASS loops

JRE Stats

  • Spring Boot application hosted on Google Cloud
  • Uses YouTube Data Api to get channel statistics for the Joe Rogan Experience
  • Enables users to browse videos based on calculated meta statistics that YouTube does not provide
  • Source code

YouTube Stats

  • Precursor project to JRE Stats
  • Gets channel statistics from YouTube Data Api for a few very popular channels
  • Source code

Cinsay

Strokers Dallas - strokersdallas.com

  • WordPress, custom theme, responsive, subscription website
  • Twitter "chat" hashtag feed that hooks into twitter api and caches old tweets (fixed to footer)
  • Multiple custom OOP caching scripts, that dump off json files, triggered by crons used to speed up DB intense pages
  • Calendar page that uses third party calendarwiz.com service and api to cache calendar data and to render it based on month and year inputs (calendar page). I designed this page
  • Asynchronous photo comment and rating system that also allows users to post their comment to facebook at the same time
  • Search pages using angular that loads new content asynchronously
  • See screenshots

Cinsay Productions

  • Responsive AngularJS application with PHP backend
  • Client side templating and HTML5 clean url routing
  • AJAX based contact form with explicitly rendered google reCAPTCHA and angular validation
  • Use of Gulp build tool to compile, merge, and minify SASS and JS files into single "app" file
  • HTML, CSS, SASS, JS, Angular, PHP
  • See screenshots

Cinsay On Demand

  • jQuery and Laravel application
  • Contact form with google reCAPTCHA that remembers your inputs if you answer it incorrectly
  • See screenshots

Cinsay Player Plugin

  • JS Plugin that makes the Cinsay Player responsive
  • Plugin calculates if there is enough room to show player, and if there isn't replaces iframe with video thumbnail image from Cinsay API
  • If the player is replaced with an image, clicking on it will open the player in a modal
  • Source code

EYEMAGINE

Famous SAS

  • Integrated Magento with Full Circle ERP software
  • This project consisted of a Magento module that would be triggered by crons to dump off CSV files into certain file location
  • Those CSV files would then be picked up by the client's ERP system which would then unload its own CSV files
  • Magento would then look for the ERP system's CSV files, and this process would happen over and over every 15 minutes to sync Magento store data with the ERP system

Style Commerce - stylecommerce.com

  • Responsive WordPress website
  • Built on top of premium theme
  • See screenshots

Suit Avenue - suitavenue.com

  • Responsive Magento website
  • Built the checkout page, and many of the "static" or "cms" pages
  • I also contributed to front end fixes during the QA process

Classic Shaving - classicshaving.com

  • Magento website
  • Another developer and I worked together to implement a new design on the cart and checkout pages
  • Periodically made small updates and fixes to the front end

Koi - koihappiness.com

  • Magento website
  • My role in this project was mostly to fix bugs found during the QA process
  • I also installed, configured, and implemented the "Color Swatch" magento module for the product pages

Zen Bedrooms

  • Magento website with multiple top level domains, languages, and inventories
  • Rebuilt the US home page based on a new design
  • Implemented varius SEO updates such as adding canonical tags to each page, fixing URLs, and adding schema.org attributes to HTML elements

TLI Solutions - tlisolutions.com

  • Responsive Drupal website
  • This project was a custom design built on top of a premium responsive Drupal theme
  • Added additional functionality through Drupal modules that helped customers manage website themselves
I am the express version