What if I called FLUSHALL on your Redis instance? 😱

At Honeybadger, we use Redis a lot. It's our Swiss Army Knife; it's a cache, a single source of truth, it stores background jobs, and more. Basically, Redis is one of those services that should never fail.

I was pondering the DevOps apocalypse recently...

Introducing Breadcrumbs

We added a useful debugging tool called Breadcrumbs. Check them out, and perhaps you will never need a random debug log in production ever again.

How We Migrated To Turbolinks Without Breaking Javascript

In this article, I'm going to tell you about our migration from PJAX to Turbolinks. The good news is that Turbolinks works surprisingly well out-of-the-box. The only tricky thing about it is making it work with your JavaScript. By the end of this article I hope you'll have a good idea of how to do that.

How To Track Timeouts In Honeybadger

Most people consider timeouts to be a kind of error, so it'd be nice to have them reported by Honeybadger like any other errors. This article will show you how to set that up.

PagerDuty Integration Reborn

Now you can use PagerDuty's event rules feature to suppress an event or change its severity based on data sent from Honeybadger. For instance, when an exception is sent to PagerDuty, you could set the severity to "critical" for a specific environment when fault.environment equals "production".

Account Security Updates

Alongside introducing new security features like Two-Factor Authentication (2FA) and integration with haveibeenpwned.com, we also take a quick look into the inner workings of Two-Factor Authentication.

Building Autocomplete With DynamoDB and Lambda

We recently released a new search key autocomplete feature here at Honeybadger. It was such a fun project that I just had to write it up for you all. Not only does it showcase an exciting use of DynamoDB, but it also shows the challenges of using DynamoDB cost-effectively with large amounts of frequently-updated data.

Going deep on UUIDs and ULIDs

A chance conversation let me to the realization that the world of unique identifiers is larger and more wondrous than I ever could have imagined. In this post we discuss five types of UUIDs and their upstart cousin, the ULID. We explore what makes each of them special and when they may be particularly useful.

Honeybadger and Slack - Error Monitoring Awesomeness – Part Deux

Honeybadger and Slack have partnered up again and have been hard at work pushing error monitoring to the limit. Why? Because bugs and exceptions don't rest, and neither do Honeybadger and Slack. We’ve rebuilt the Slack integration.

Avoiding Junk-Drawer Classes in Ruby

Because Ruby is an object-oriented language, we tend to model the world as a set of objects. We say that two integers (x and y) are a Point, and a Line has two of them. While this approach is often useful, it has one big problem...