Jon Daniel

$ curl https://api.jondaniel.net/about.json | jq
HTTP/1.1 200 OK

{
  "name": "Jon Daniel",
  "email": "binarycleric@gmail.com",
  "github": "https://github.com/binarycleric",
  "blog": "https://chronicbuildfailure.co"
}

Salesforce.com, Inc.

My team is responsible for the provisioning and ongoing operations of Heroku’s PostgreSQL, Redis, and Apache Kafka data product, which is built on top of Amazon Web Services (AWS). We maintain over 30,000 EC2 instances, a petabyte-scale archive of continual database backups, and hundreds of thousands of free-tier “hobby” databases.

A major victory for 2017 was shipping “Heroku Shield”, which gives customers access to HIPAA and PCI compliant databases. This was the main project I worked on from the time I was hired until Shield went GA.

To improve the customer experience with PostgreSQL, I lead a project that added and on-server connection pool, allowing customers to move beyond Heroku’s imposed 500 database connection cap.

LivingSocial, Inc.

I was a member of Core Services team, which is responsible for developing and maintaining various business critical systems, as well as providing architectural advice to engineering teams. The main objective of Core Services was to develop applications that provide highly-available and fast access to “Deals” with a SLA of roughly 40ms for collections.

We designed the majority of these services to be readable via REST-ful HTTP APIs and writable via a Kafka stream, which made our codebase more streamlined and prevented a large volume of writes impacting read performance across our infrastructure.

Our efforts resulted in fairly large performance and reliability improvements across the consumer-facing tier of LivingSocial. Our biggest highlight is taking the “Deals near you” page from an average of 5000ms cold-cache/1000ms warm-cache to under 250ms with no caching at all.

Webkite, LLC.

Webkite was a startup that offered faceted search as a service. During my time there I lead a project to refactor the codebase from a single-tenant “investor demo” to a white label multi-tenant application.

Since Webkite was founded by a self-taught developer, we offered a Non-Traditional Internship Program. This program hired individuals with no formal programming experience but an advanced degree in a Science or Engineering field (and Philosophy in one case). During this time, I mentored two interns, both of whom continued their careers in software engineering and still work in the industry today.

InterWorx, LLC

InterWorx offered a Webhosting Control Panel, which allowed clients to easily configuration and manage servers for shared hosting environments on the LAMP stack. During my time there, I developed a great understanding of application security, including the prevention of SQL Injection, CLI Injection, XSS and XSRF attacks.

My favorite project was building a high availability framework into the Control Panel. DRBD, Pacemaker, LVS, and Ldirectord were used to allow for fast and automated failover to a standby InterWorx server in the event of downtime. This product was given to VIPs and internal customers but unfortunately was never released to online users.

Wellspring Worldwide

Wellspring was my first job after finishing college. Their main product, known as KMS, assisted in intellectual property management and tracking of legal requirements for universities and institutions that received public money.

Open Source Contributions

Currently, I’m working on a data-structure-as-a-service called Bettis. This is a pet project to give me the motivation to learn more about Rust and its ecosystem and to someday serve as a drop-in replacement for Redis.

While working on a white-label project at Webkite, I needed a way to easily break out of a for loop in Liquid so I added break and continue statements.

Additionally, I needed to gain more information about malformed IPAddress from customer configuration. THis was initially written as a monkey patch to IPAddr but I eventually ported the changes to ruby’s stdlib.

During a hack night at Code & Supply, I built a rubygem called benchmark_requires to help identify slow loading libraries.

Talks

Growth and Mentorship: Working with Junior Developers - Code & Supply August 30, 2016

Ethical and Sustainable On-Call - DevOps Days Pittsburgh 2015