Jake Gaylor

Full Stack Engineer

720.453.3994

Download Resume Read Blog

Hacker and Entrepreneur

My passion for programming was sparked in 2001 doing CRUD on a LAMP. I have a ton of experience developing web applications and I have worked with a variety of platforms and technologies to build software and have deployed software to the web, Mac OS X, and Linux. My understanding of many different programming languages and frameworks has exposed me to new paradigms, which helps me pick the best tool for each job. I do any work I can openly on Github and am a big fan of open source. I love talking shop, so reach out if you want to chat.

I started a company in 2013 which launched two products. Both were SaaS applications involving collecting and curating large sets of social media data and I built the technical stack from servers to CSS. I learned to do a lot of non technical things as well while starting NestedData, including writing copy, managing finances, hiring, firing, negotiating contracts, marketing, on boarding, and most of all how to talk to customers.

Developer

I have 7 years experience hacking professionally. I've worked on CI/CD pipelines, internal productivity tools, social media applications for social scientists, open source blogging software, an xmpp chatbot to provide a CLI to the vast League of Legends data on the web, and architected multiple distributed systems.

Given a set of objectives, I can evaluate them to then build the infrastructure and applications to meet them. I'm a hacker at my core, so I thrive in an environment where I am able to help determine the technical direction, though the entrepreneur in me really wants to talk to the users in order to challenge my assumptions.

Ops

Automated, repeatable deploys - I use tools like Chef, Packer, and Terraform to model infrastructure as code in order to be able to test it before releasing changes to production environments. A solid configuration management codebase saved my team's bacon more than once. Having infrastructure in code means we can be back up in minutes and only one person has to be distracted by what could other be a catastrophe.

CI/CD - Using Code Review, Docker, Jenkins, and a solid test suite, I built a CI/CD pipeline for the SocialDrizzle web app and it's supporting services. Our team was able to make changes to the application and see them in production as soon as they passed muster, without having to waste time doing repetitive, error prone tasks.

Recent Past

Lately I have been doing a good deal work with Kubernetes. It is an unopinionated PaaS on top of which tooling can be built to provide a great amount of business value with less technical investment than ever before. I have also been working with CoreOS and concourse-ci to enable rapid creation of CI/CD pipelines that scale.

Before that I spent a lot of time working with Meteor and I recently built a social media data collection system in node that allows me to use (Twitter/Facebook/Instagram) bots in multiple applications while only having to do the work of writing the logic and building/deploying infrastructure once.

My latest, public, launch was a chat bot for League of Legends. It was built in a week and documented at https://github.com/jhgaylor/StatBot/wiki/Day-0:-The-Beginning. Please feel free to check out the repository as an example of my work.

Future

I'm looking for work as an operations engineer. My ideal role would be one where I can provide tools and services to developers to reduce the friction of creating and maintaining production ready software. An average day might include meeting with a dev team to discover pain points (cross team collaboration), working on a client library to interface with the experimental metrics2.0 backend (coding/helping devs interface with ops), reviewing a merge request to the terraform/cloud formation repository, and possibly tracking down the root cause of a production outage.

I’d like to be in a position where I can have a say in how we choose to do things but also put my head down and knock out the actual implementation.

On the side I'm toying with building a Heroku-like service on top of GKE at Cloudflinger.com. It's open for use but it's may disappear at any time as it is a side project consuming actual cloud resources. The placeholder marketing site is being hosted using the service.

Projects

Statbot [Link]

Highlights
  • XMPP client using Hubot to communicate.
  • Express.js HTTP API Server
  • Redis for cacheing. Led to the creation of a new npm package, Big Cheese.
  • Deployment was automated using Tutum.co
  • Ramped up from 1 to 7 regions in hours.
  • Contributed a patch upstream to LeagueJS.
  • 14k+ Redditors visited the project on day one.
  • The entire project, from launch to finish, took just 7 days.
About

A chat bot for League of Legends. LoL players, especially those not in the top tier of competitive play, often need more information about the game... quickly! It is quite common for players to "alt-tab" to sites like lolking, lolnexus, lolcounter, probuilds, or many others. Once on the site gamers have to type, click, and wait on load times, all while under extreme time pressure. To make matters worse, they often need information from one (or multiple!) source(s) during champion select, another source at the load screen, and yet another during the game. All of these things add to the players' stress level, and some times, they don't get done in time. Thus these constraints have in game ramifications. Statbot makes it easy to get all the information you need instantly in game.

Node.js Coffeescript HTTP Redis XMPP Express.js

Tracer

Highlights

  • Meteor.js Web Application
  • Twitter Bootstrap CSS Framework
  • Python Social Media Data Collector
  • Consumed real time and historic data.
  • Celery & RabbitMQ for a scalable Asynchronous Task Queue
  • MongoDB for Application State and Social Media Data Storage
  • Integrated with FullContact and PiPl web apis.

About Tracer offers a quick and easy way to identify, capture, codify, and report a person's social media data. With just a person's email address or username, Tracer helps you identify the target's social media accounts and provides you with both historical and real-time data.

Meteor.js Node.js Coffeescript Python Celery RabbitMQ MongoDB Vagrant

SocialDrizzle [Link]

Highlights

  • Entire System of services and networking deployed with the most up to date code using Ansible, Docker, Jenkins, and Github.
  • Built using micro services including: a data collector, a data router, a data consumer, a data labeler, a web application, and a marketing site.
  • Employs a fleet of bots that consume data from social networks.
  • Web Application built with ♥ using Meteor.
  • Launched first version at Mississippi State University after just 12 weeks.

About A startup venture for providing social engagement to the patrons of public events. SocialDrizzle offers game day production crews a turnkey solution for highlighting fans' social media messages and pics on stadium video board. SocialDrizzle provides the whole package -- a collection and curation application, custom designed templates, hardware connection to your existing production equipment, on-site set up, and unlimited tech support. Get in touch if you want to know more, I'd love to talk to you about my experiences launching a product and starting a business.

Meteor.js Node.js Coffeescript MongoDB Ansible Docker Redis Websockets Microservices Unit Testing SASS GNIP Jenkins CI/CD

Django-blogger [Link]

Highlights

  • Exemplifies Django Best Practicies
  • Easily Themable with a python package using Twitter Bootstrap.
  • Feature Filled multi tenant blog.
  • i18n & l10n
  • Includes an HTTP Api
  • Support posts written in markdown.

About A reusable Django app for blogging intended for one or more contributors. The purpose of this project is to create a basic, but feature complete, blogging platform for Django v1.4. The project was intended to exemplify best practices in Django at the time of writing. The package has been downloaded nearly 50,000 times since creation.

Python Django Unit Testing i18n l10n RSS REST Api

TLDR.io api wrapper [Link]

Highlights

  • Python Package for accessing TLDR.io's HTTP Api
  • Simple API that maps closely to the API documentation.
  • One of my early projects with tests.
  • Thoroughly documented.

About I was really enjoyed using [tldr.io's service and I wanted to find a way to give back. When I discovered they had an HTTP Api and no Python library, I jumped at the chance to build it.

Python Requests HTTP Api Unit Testing

Bonus.ly Api Wrapper [Link]

Highlights

  • Node.js Package for accessing Bonus.ly's HTTP Api.
  • Intuitive API that attempts to feel like the http api using javascriptisms.
  • Usable as a static class - convenient if you already have an api key in memory.
  • Instantiate the class to have a client that will track the api key for the mostly recently authenticated user.

About Node bindings for the bonus.ly http api using the request package. The idea was to treat the HTTP api as a set of calls that could be described using a few common parameters. I was trying to get as close as I could to "generating" code. (I should learn a lisp!) Adding new endpoints becomes as simple as writing a POJO. This wouldn't work if the HTTP API didn't have internal consistency.

By describing the required parameters, we can give feedback to the developer without waiting for a round trip. This comes at the expense of having to update the client library any time the http api changes. Depending on how "frozen" the api is, this may or may not be a good trade off. I built this to easily allow that feature to be removed.

Node.js Request Promises HTTP

Social Media Tracking and Analysis System (SMTAS) [Link]

Highlights

  • Django Web Application
  • jQuery for client side pizazz.
  • Twitter Boostrap
  • PostgreSQL
  • Python Social Media Data Collector
  • Consumed real time data.
  • Celery & Redis for a scalable Asynchronous Task Queue
  • Google Maps

About A system to collect, analyze, and visualize social media data for researchers to gain valuable insights into public opinion, views and fluidity. SMTAS is focused on the social network, Twitter, where researchers have access to approximately 500 million tweets per day. Tweets are public postings made by worldwide users of Twitter. Apart from the real-time access to Twitter, SMTAS also has access to historical data/tweets posted via Twitter since 2006. Apart from Twitter data being a rich information source of human behavior (170 million active users) in a social network, it also provides researchers instantaneous information from its user base with its faster (compared to other social networks) message propagation.

Python Django Celery Redis Unit Testing REST Api PostgreSQL jQuery Twitter Bootstrap Google Maps ECMAScript 5 GNIP Streaming HTTP

Employee Management System

Highlights

  • Meteor Web Application deployed as a standard node application using Demeteorizer
  • Touch Screen Friendly
  • Internal Productivity tool used by an 80 employee survey call center.
  • Required matching existing timecard printouts closely.

About "Timemaster" was desperately needed by Mississippi State University's (MSU) Social Science Research Center's (SSRC) Survey Research Laboratory (SRL) in order to wrangle the timesheets of 80+ intermittent workers. The tool saved a team of 4 supervisors a significant amount of time that was being spent on paperwork.

nginx Node.js Coffeescript MongoDB Meteor.js Unit Testing Chef Codeship

Read

  • How Google Works
  • The Everything Store
  • The Goal: A process of ongoing improvement
  • The Phoenix Project
  • The Five Dysfunctions of a Team
  • The Lean Startup
  • Hackers and Painters
  • Two Scoops of Django
  • Javascript: The Good Parts
  • JavaScript Allongé
  • Discover Meteor
  • XMPP: The definitive guide
  • Founders at Work
  • Node.js the Right Way
  • Rework
  • The Virgin Way
  • Zero to One
  • Delivering Happiness
  • It's Not Luck
  • Critical Chain
  • The Five Temptations of a CEO
  • Customer Development for Entrepreneurs
  • Think Like a Freak
  • Start with Why
  • Great by Choice
  • Growth Hacker Marketing
  • SuperFreakonomics
  • Made to Stick
  • Leaders Eat Last
  • The Spirit of Kaizen
  • Rolling Rocks Downhill
  • Grit: The Power of Passion and Perseverance
  • Start with Why
  • The Founder's Dilemmas

Reading

  • Effective Devops