I'm always amazed when I think about how much our tiny team of engineers is able to accomplish in a year. So I thought it'd be fun to make a "highlight reel" of the things we're proudest of this year.

Here goes nothing!

New platforms

We started the year only officially supporting two languages, Ruby and Javascript. Now we have six, with more on the way:

The response from customers has been wonderful! As projects become more and more polyglot, it's super handy to be able to take your toolchain with you.

New search and alert filters

In 2015 we rebuilt our search system from the ground up using solr. You can now search for errors using almost any piece of data included in the error.

Check out the Search Documentation for more info.

honeybadger advanced search

In addition, you can use her powerful search system to route errors as they come in. For example, you could assign all errors that come in on staging to whoever is responsible for your staging server.

honeybadger channel filters

Product Improvements

There are too many to list here, so I'll limit myself to three. :)

  • Performance: You may have noticed that Honeybadger is a lot faster than it used to be. This is due to us moving to Cassandra for storage of exceptions. This is an ongoing projects, so expect more to come!
  • Causes / Nested exceptions: We now fully support nested exceptions as seen in Ruby 2.1, as well as other languages like Java. Read more
  • Documentation: We've rewritten most of our documentation, and rebuilt our documentation site from the ground up to make answers easier to find.

Conferences and Articles

honeybadger channel filters

One of the great things about working at Honeybadger is that we get to hang out with our friends—AHEM—customers at conferences, TAX FREE!

This year we did four big conference presentations:

And we wrote a lot of popular blog posts. Here are a couple of my faves:

  • The Rubyist's Guide to Environment Variables: If you want to be able to effectively manage web apps in development and in production, you have to understand environment variables. This post will show you how environment variables really work - and perhaps more importantly, how they DON'T work. We'll also explore some of the most common ways to manage environment variables in your Rails apps.

  • How Ruby Interprets and Runs Your Programs: In this post we'll follow the journey of a simple program as it's lexed, parsed and compiled into bytecode. We'll use the tools that Ruby gives us to spy on the interpreter every step of the way.

  • Use any C library from Ruby: Fiddle is a little-known module that was added to Ruby's standard library in 1.9.x. It allow you to interact directly with C libraries from Ruby. In this post we'll start with some simple examples and finish by using termios to talk to an arduino over a serial port.

  • How unicorn talks to nginx - an introduction to unix sockets in Ruby: In this post we start out with the basics of unix sockets and finish by creating our own simple Ruby application server which can be proxied by nginx.

That's all?

Hardly! I'm sure I'm going to make someone sad by leaving out one of their favorite achievements of 2015. But I have to draw the line somewhere — I'm surprised you're still reading!

Here's to a great 2016! Where's my bottle of champaigne?