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.
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.
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.
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.
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.
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
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
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
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
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
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
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
SMTAS from Innovative Data Lab on Vimeo.
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