How August 2017 RubyGems Vulnerabilities were patched on Heroku

This is less a blog post and more of an FYI. This is pretty much verbatim of a snippit I wrote to respond to people asking about the Rubygems vulnerabilities. The TLDR; push to Heroku using any supported Ruby version and you’re safe. If you’re not using a supported Ruby version upgrade your app. The vulnerabilites were fairly low impact, but you should still take steps to protect yourself.

Keep Reading


Adding a Blog feature: 'Say my Name'

Do you have a hard name to pronounce? I know I do, and I’m constantly getting asked to say it for people. So much that I decided to add it to my blog. It was pretty easy and I don’t know why I didn’t do it sooner. This is a short post on the why and the how to add an audio clip to your “About” page.

Keep Reading


How I lost 17,000 GitHub Auth Tokens in One Night

How on earth does someone accidentally delete 85% of their users’ GitHub tokens? I was suspicious that something might be wrong when I got an email from a service I run called CodeTriage, it’s a free web app to help find open source projects and issues to work on. While I get plenty of emails from my service, I don’t often get ones with the subject line “Code Triage auth failure”. Before we can understand what happened, let’s look into why this email even exists.

Keep Reading


I spent $50 on Twitter Ads so You Don't Have to

If you use twitter, you’ve likely seen those tweets with the little *promoted* tag on them. Twitter has always been a huge source of traffic to my tech articles, so I wondered if a promoted tweet or two would be just as successful. To find I went down the twitter advertising rabbit hole for the first time. Keep reading to find out how well my promoted tweets performed.

Keep Reading


The Longest Email I Ever Sent (Programmatically)

This is a post about how I had a bug in a background job that ended up sending huge emails to customers. Learn about how I found & debugged the issue, mitigated the problem, and then finally fixed the underlying causes.

Keep Reading


Coder Frozen in 2009 Awakens to Find Frontend Development not Awful

I’ve not seriously touched frontend code, in years. Frankly, it scares me. To that end “front end devs are not real programmers” is totally BS. I want to talk about some of the recent changes in tooling and APIs that are available so that front end development might not suck as much as it used to. You will not learn to be a CSS or JS guru with this post. If you’ve written much front end code, this will be mostly full of face-palm level obvious statements. Therefore, feel free to read for the laughs.

Keep Reading


Is WEBrick Webscale?

WEBrick is the “slowest” webserver in Ruby, how could it possibly be webscale? To answer this question and explore Is Ruby Too Slow For Web-Scale?, we will compare WEBrick to a real piece of “webscale” tech: NGINX.

Keep Reading


OMG OMSCS: Is an Online Masters right for You?

Ever wonder if you should go back to school to get a master’s degree? Right now I’m in my second semester of Georgia Tech’s Online Master of Science in Computer Science (OMSCS). I’ve had a few people ask about my experiences so I figured it was worth my time to write them down. In this post I’ll be going back and forth, question and answer style to share my thoughts on the program.

Keep Reading


How I Reduced my DB Server Load by 80%

Database load can be a silent performance killer. I’ve been optimizing the query performance of a web app I run designed to get people involved in open source, but was seeing random spikes of query times to 15 seconds or more. While I had been seeing this behavior for some time, I only recently began tuning my database queries. You can read about my efforts to First I sped up my home page with some indexes (and Rack Mini Profiler). Then I tracked down and killed some expensive queries. After these major improvements the average response time was around 50ms and my perc95 was under 1 second. Yet, I had this annoying issue where in a 24 hour period, my perc95 response times would shoot up to maybe 15 seconds or 30 seconds and start timing out for a short period of time. This post is about me finding and fixing that issue which resulted in a net 80% decrease in my database load.

Keep Reading


Using Heroku's Expensive Query Dashboard to Speed up your App

I recently demonstrated how you can use Rack Mini Profiler to find and fix slow queries. It’s a valuable tool for well-trafficked pages, but sometimes the slowdown is happening on a page you don’t visit often, or in a worker task that isn’t visible via Rack Mini Profiler. How can you find and fix those slow queries?

Keep Reading


Subscribe to my Newsletter 😻 🤠

Join thousands of developers who get new code, writing, and programming links from me delivered to their inboxes.