Projects

These are a few projects I've worked on over the past few years. These are the biggest and best, but by no means all of them. Almost every project had associated automation for test, build, and deploy, and in most cases I worked on that as well.

Cloud Management Platform

Description:
An API first cloud abstraction and management platform. Built to enable DevOps teams take advantage of multiple clouds through a single interface and workflow, e.g. build once and deploy to multiple cloud providers.

Role:
Developer for API (Java, Groovy), UI (CoffeeScript, HTML, CSS, ExtJS), and ops (Python, Bash, AWS, Jenkins).

Dates:
2013 - 2015

Usage:
~20 internal teams, ~60 engineers, ~1m/req-per-mo peak

Noteable:

  • Wrote many core features and functionality for both the API and the UI. One of two primary developers on the team.
  • Maintained a very thorough test suite of unit, functional, and integration tests (end to end). Also participated in a number of quality assurance efforts.
  • Spearheaded and served as lead on several major feature implementations and revisions, owning everything from design, to management, to proof of concept, to delivery and testing.
  • Maintained extensive documentation, both internal and customer facing ranging from API specifications, to "how to" and "getting started" guides, to examples of how to use the API for common tasks (deployments, troubleshooting, etc), to operational writeups for internal use.
  • Interfaced with customers in white-glove fashion, from demos, to bootstrapping their experience and usage, to troubleshooting, to solutions architecture and consultation.
  • Contributed heavily to open source library Dasein that product was built on top of.

Visual:
I am unable to share images of the product because I don't have property rights, but here are a few screenshots that represent some achievements I am proud of including the number of tests, coverage, and my contributions (private and OSS):
Project commits 1
Project commits 2
Project coverage 1
OSS commits
OSS commits 2


Cloud Environment Manager

Description:
A product that evolved from the "Cloud Management Platform" above, which enabled Infrastructure as Code for the company. Build on OSS technology (Terraform), it enabled large distributed teams to define infrastructure in declarative templates, collaborate simultaneously on them, and execute provisioning and management remotely. This allowed for infrastructure patterns to be defined once and provisioned again and again as exact replicas in different regions. This is extremely important when environments consist of thousands of resources and tens of thousands of toggles. It also solved problems of coordination when executing Infrastructure as Code.

Role:
Developer for backend (Python, Bash), integration (Bash), and ops (Bash, Chef, AWS, Jenkins, Terraform).
Also served as Scrum Master and Product Manager over the course of two years.

Dates:
2015 - 2017

Usage:
~20 internal teams, ~60 engineers, ~110 environments, tens of thousands of resources

Noteable:

  • Took product from inception, to proof of concept, to production, and through three major versions.
  • Evangelized and demonstrated product extensively.


IBM Cloud Schematics Service

Description:
IBM Cloud Schematics is an automation tool to define and deploy IBM cloud infrastructure as a single unit, and reuse those cloud resource definitions across any number of environments. Schematics uses Terraform to codify infrastructure. By abstracting high-level and low-level resources, infrastructure can be treated like software, as code. See the documentation here.

Role:
Product (Offering) Manager, Consultant (subject matter expert for Terraform and DevOps), Developer Advocate (engaging community and customers, driving direction for product).
Developer for number of proof of concepts (Terraform) and Automation (bash and python).

Dates:
2016 - 2017

Noteable:

  • Took product from inception, to proof of concept, to production (beta).
  • Evangelized product extensively.


GitHub Reconciliation

Description:
Self service sign up for the company's GitHub.com organization and automated reconciliation against active directory (via iDP Okta). Allowed developers, testers, ops, etc gain access to through self service model and kept the company safe by syncing GitHub organization members with the company directory. App was commissioned by enterprise security team to manage user access to GitHub.

Role:
Developer for backend (Groovy), frontend (JavaScript, HTML, CSS), and ops (Python, Bash, Puppet, Jenkins, AWS, Terraform).

Dates:
2015 - 2017

Usage:
700+ Users

Noteable:

  • Principal developer; owned all aspects of lifecycle from concept, to design, to implementation, to ops, to monitoring.


GitHub Monitor

Description:
Complimented the above "GitHub Reconciliation" application by querying the GitHub API to determine "Outside Collaborators" (prior to GitHub announcing a direct API for it ) and public repositories that do not match entries in a whitelist. Also checks the repo limit for the organization. Sends alerts via AWS SES when any violations or limits are found. Available on GitHub@ckelner/github-monitor.

Role:
Developer for script (Python) and ops (Bash, Jenkins).

Dates:
2016 - 2017

Usage:
Internal script for team administering GitHub.com for the enterprise. Monitors 1700+ repos and 700+ users on continual basis.

Noteable:

  • Principal developer; owned all aspects of lifecycle from concept, to design, to implementation, to ops, to monitoring.
  • Primarily written in a single day, a "Hack Day" with one of my colleagues to help with the administration of the company GitHub Org.


AWSResco

Description:
An application to get instance and reservation information for a just-in-time comparison of running infrastructure. Allows users to compare easily see what reservations they are under utilizing and where they may want to purchase more. AWS, at the time of development, did not have an easy way to look at this data.

Role:
Developer for frontend UI (JavaScript, HTML, CSS) and frontend business logic (JavaScript, AWS SDK), and ops (Bash, Python, AWS).

Dates:
2016 - 2017

Usage:
500 users per month

Noteable:

Visual:
This project is an open source project available to the world, therefore I am able to provide images of the product:
AWSResco Image


Cloud Billing Reporting

Description:
A solution which centered around Netflix Ice at high scale. The system processed 45Gb (uncompressed) of AWS Billing data hourly for over 200+ AWS accounts for over $20m+ yearly. At the time (2013-14) AWS did not have a strong billing dashboard in place and Ice was one of the only OSS tools around.

Ice acted as the processing engine and customer UI, while additional tooling was built to extract high level information from Ice, publish that data into Google Sheets, further munge the information with Google Apps Scripts, then finally fire off daily emails, alerts, and reports at varying levels of visibility, e.g. some single account views for product managers, some multi-account views for program managers, directors, and engineerings managers, and full-scope views for executive leadership.

Role:
Sole engineer and developer; Systems and configuration (Python, Puppet, Bash), backend dev (Java, Python, JavaScript), scripting (Python), and ops (EC2, ELB, Auto scaling, RDS, SQS, SES, SNS, CloudWatch, Deadman's Snitch).

Dates:
2014 - 2016

Usage:
100+ users

Noteable:

  • Brought cloud spend visibility to the enterprise and on several occasions helped catch run-away cost issues saving the company tens of thousands of dollars.


Documentation Portal

Description:
A web portal for engineers from other teams that are using solutions and services built by my team to get documentation, guides, examples, videos, etc. Solution pulled documentation from source control from over 30+ repositories where other engineers had written documentation using markdown, then compiled using middleman (a static site generator), and deployed to AWS using an automated script; Documentation in the portal is used by over 200 engineers across the enterprise.

Role:
Sole Engineer; Developer for frontend (HTML, CSS, Bootstrap, jQuery, Lunr, Redcarpet), build automation (Python, GitHub API), deploy automation (Bash, AWS CLI), and Ops (Chef, Apache, EC2, Auto Scaling, ELB, Route53, S3).

Dates:
2014 - 2017

Usage:
300+ Engineers, 50+ Engineering teams, Numerous non-engineers for reference

Noteable:

  • Ended up saving the team a lot of time by providing a single location we could send both technical and non-technical people to get all their questions regarding our products answered.


Kiosk

Description:
Self-service check-in and check-out system used in hotel lobbies. Allows guests to check-in at kiosk and receive room keys or check-out and receive a room folio. Two major versions released, the first was a full service kiosk where users could input their reservation number, insert their credit card into a mag-stripe reader, or put in their loyalty member number to pull up their reservation, check-in, and get their room keys. This version also allowed users to check-out by the same means and get their room folio (receipt) for their stay. The second version had trimmed features based on hotel and guest feedback, it allowed guests to check-in only, they would opt-in during their booking, receive a QR code, then scan the code at the kiosk to receive room keys.

Role:
Served as developer for backend (Java, Spring, Ant, Resin), frontend (HTML, CSS, JavaScript), component/client (Bash, C++), deploy automation (Bash), and ops (S3, Elastic BeanStalk).

Dates:
2008 - 2013

Usage:
Deployed to ~15 pilot hotels and ~5 US Army hotels.

Noteable:

  • Worked on many hardware programming components from magnetic stripe readers, to Sankyo magnetic stripe encoders and dispensers, to thermal printers, and early consumer touch screen technology.
  • Major partnership with NCR on second version of product. Helped establish working relationship, API interaction, component communication, and QR code delivery and testing.
  • Sole engineer and operator for administration interface for guest and staff management for second version.

Visual:
This project was displayed in the public domain (hotel lobbies) where anyone could see and interact with it, therefore I am able to provide images of the product:
Kiosk in Holiday Inn Lobby with FlightBoard
PAL Army Hotel Kiosk Homepage
Intercontinental Buckhead Kiosk Homepage
SmartKey (Kiosk Version 2) Device


WallBoard

Description:
An interactive large format display placed in hotel lobbies. Displays a number of dynamic data feeds relevant to hotel guest interest sourced from multiple APIs. Examples of data displayed are: hotel meetings, local events, local businesses and points of interest, weather, flight information, news, stocks, advertisements, hotel maps, promotions, etc.

Role:
Developer for frontend UI and business logic and API interaction (JavaScript, Prototype(JS), HTML, CSS, Sass), client side configuration (Bash, JavaScript), hardware components (C++ (touch drivers)), and some limited work with backend services (Java, Spring, Ant, Resin).

Dates:
2008 - 2013

Usage:
Deployed to 30+ hotels.

Noteable:

  • Designed and implemented homebrewed configuration service for client side devices (thin client machines powering the display) which allows hotels to configure their own devices when the device is first powered on by inputting their hotel code into the locked down browser which launched the web app automatically, then communicated back to the config service to determine the hotel brand and UI components to load (many components were interchangeable).
  • Implemented custom UI/CSS skinning framework to support five different brands independently with standardizations. Skins were easily swapped by installers and/or hotel staff via a build in UI mechanism.

Visual:
This project was displayed in the public domain (hotel lobbies) where anyone could see and interact with it, therefore I am able to provide images of the product:
Wallboard for Crown Plaza


FlightBoard

Description:
Large format display showing local airport departure times, gates, flight numbers, and delays.

Role:
Developer for frontend UI and business logic and API interaction (JavaScript, jQuery, HTML, CSS), client side configuration (Bash, JavaScript).

Dates:
2009 - 2013

Usage:
Deployed to ~15 pilot hotels.

Noteable:

  • Worked closely with third party software vendor as an alpha customer of their API to get flight data for our product. Vendor eventually went on to implement the product we had designed together after a successful pilot.

Visual:
This project was displayed in the public domain (hotel lobbies) where anyone could see and interact with it, therefore I am able to provide images of the product (a photo of it physically deployed in a hotel can be seen in one of the photos in the kiosk section above):
Flightboard for HI


AppWatch

Description:
Internal monitoring tool for all in-hotel solutions, ranging from power-on and connected to internet, to screen state, to configuration validation, to usage metrics.

Role:
Developer for front-end UI and business logic (JavaScript, HTML, CSS), backend systems and API (Java, Tomcat, Resin), on device (local system) agent (Java), and Ops (Bash, VNC).

Dates:
2010 - 2013

Usage:
Used to monitor 65+ complex systems which were comprised of a number of components (touch screens, card encoders, computers, software, etc).

Noteable:

  • Functioned as asset tracking, software monitoring, screen capture and display (for troubleshooting), user interaction metrics (e.g. what they clicked), hardware status, and configuration reporting.


Hotel Wifi Landing Page

Description:
Complete refactor and redesign of all U.S. based Holiday Inn and Holiday Inn Express in-hotel Wifi landing pages.

Role:
Responsible for frontend dev (JavaScript, YUI, Google Maps SDK, Yahoo News and Weather APIs, HTML, CSS), and deployment/ops (Python, Elastic Beanstalk, S3).

Dates:
2011 - 2013

Usage:
~1,700 hotels

Noteable:

  • At the end of my tenure I was solely responsible for updates, uptime, and maintenance. Automated everything possible and build for elasticity in AWS.


MobileKey

Description:
Mobile check-in and mobile room key solution. Allowed guests to check-in via their phone and open their room via unique audio technology playback through handset. Worked as developer on guest facing opt-in and registration portals, back-of-house integration, and administrative services for managing guests who opt-ed in. Also played role in QA tooling and debugging for audio playback and doorlock testing. See this ad.

Role:
Frontend dev (JavaScript, HTML, CSS), backend dev (Java, Python), and Ops (EC2, S3, ELB, Python) and served as integration consultant and subject matter expert while also filling a necessary quality assurance and test engineering role through automated and manual testing.

Dates:
2011 - 2013

Usage:
Deployed to three pilot hotels.

Noteable:

  • Sole engineer and operator for guest-facing web portals and back of house integration and administrator components and tools.
  • Worked extensively with third party technology provider, building requirements, integration plans, and hotel installation roll-outs.


InfoTable

Description:
An interactive Microsoft PixelSense (Surface) application for Intercontinental hotel guests to use freely in the lobby to find nearby points of interest.

Role:
Developer for Frontend (C#), Backend (Java), and Ops (Powershell).

Dates:
2010

Usage:
3 pilot hotels

Visual:
This project was displayed in the public domain (hotel lobbies) where anyone could see and interact with it, therefore I am able to provide images of the product:
Infotable for IC


Harbor

Description:
An asset tracking application that tracked thousands of assets, hundreds of locations, and hundreds of customers.

Role:
Developer for frontend (JavaScript, ERB, HTML, CSS) and backend (Ruby on Rails).

Dates:
2006 - 2008

Usage:
30+ employees