Seattle, WA, USA
Aug 4, 2020   |  By Jos M. Gilgado
Few things are more frustrating than slow, flaky test suites. You're ready to deploy, wait 20 minutes for CI to run, only to find that a test failure in code you've never touched is blocking you. You dig into the source and find the problem: an external API call. It works (slowly) most of the time. But sometimes the network glitches and it fails. What do you do? In this article, José Manuel shows us several techniques for removing external API dependencies from our tests.
Jul 28, 2020   |  By Julien Cretel
Links are so fundamental to web development that they're almost invisible. When we link to a third-party page, we hardly ever consider how it could become an opportunity to exploit our users. In this article, Julien Cretel introduces us to three techniques that bad actors can use to target our users and discusses how to avoid them.
Jun 29, 2020   |  By Kevin Webster
Have you ever wanted to update all your errors at once, or set defaults for incoming errors? Well, we are releasing some helpful tools for error management that we call Honeybadger Actions.
Jun 24, 2020   |  By Jos M. Gilgado
Text encoding is fundamental to programming. Web sites, user data, and even the code we write are all text. When encoding breaks, it can feel like the floor is falling out from under you. You're cast into a dimension of bitmasks and codepoints. Logs and backtraces are useless. You consider trading your text editor for a hex editor. But there's hope! In this article, Jose Manuél will show us how encoding errors happen, how they're expressed in Ruby, and how to troubleshoot them.
Jun 16, 2020   |  By Ayooluwa Isaiah
When you're evaluating a language for your next project, few things are more important than available third-party libraries and the package manager that ties them together. While early versions of Go lacked a package manager, they've made up for lost time. In this article, Ayooluwa Isaiah introduces us to go's module ecosystem to help us decide if go is "a go" for our next project.
Jun 11, 2020   |  By Jos M. Gilgado
Developers make fun of legacy systems because we're scared of them. We're afraid that the tiniest change will cause the app to break in unexpected ways. We're afraid we won't realize it until a customer complains. One way to combat this fear is through testing. In this article, José Manuel shows us how to retrofit legacy systems with acceptance test suites so we can maintain them with less fear and more confidence.
Jun 3, 2020   |  By Julie Kent
If you are a software engineer, there's a good chance that deep learning will inevitably become part of your job in the future. Even if you're not building the models that directly use CNNs, you might have to collaborate with data scientists or help business partners better understand what is going on under the hood. In this article, Julie Kent dives into the world of convolutional neural networks and explains it all in a not-so-scary way.
May 20, 2020   |  By Jonathan Miles
Whoever first said that "the fastest code is no code" must have really liked memoization. After all, memoization speeds up your application by running less code. In this article, Jonathan Miles introduces us to memoization. We'll learn when to use it, how to implement it in Ruby, and how to avoid common pitfalls. Buckle up!

Zero-instrumentation, 360 degree coverage of errors, outages and service degradation. Deploy with confidence and be your team's devops hero.

Monitoring — like web development — is complex. Every day we hear about new tools and techniques, but they're usually for big organizations. Ones with dedicated devops teams and so much traffic they care more about “error rates” than individual user experiences. When you're on a smaller team, this doesn't work so well. You know instrumentation doesn’t pay the bills. Customers do. When they encounter a problem you need clear actionable intelligence, not walls of charts and reams of logs.

What if there were a monitoring tool for developers like us? A single tool that could answer at a glance:

  • Are any front-end or back-end systems raising errors?
  • Is the site unreachable or unusually slow?
  • Are scheduled tasks completing as expected?
  • Which customers have been affected by errors today?
That’s Honeybadger. We’re the application health monitoring tool built for you, not Google.

Honeybadger is used by tens of thousands of pragmatic developers in companies of all sizes who want to focus on shipping great, error-free products instead of wasting time building and maintaining a bespoke monitoring stack.