How Exceptional and Airbrake First Met

Hear ye, hear ye! Sometimes rivers run backwards. Sometimes the sun disappears. Today two long-time competitors have become friends.

Airbrake+Exceptional joins forces.

That’s right. We could not be more excited to announce that the team behind Exceptional has acquired Airbrake. And–we’d like to give you the backstory.

 

The Beginning

Rewind the clock to 2008. You know the drill–we launched a website–and worried about finding user-facing issues before our users did. At the beginning of 2008, in the Ruby on Rails community, your only option was to install a plugin called ExceptionNotifier. This sent you an email on every website exception. If this wasn’t stuck in your junkmail folder–any site that saw traction also saw a stream of emails–many nearly duplicated–inbound with exceptions.

Exception Notifier 2006

Luckily three services were launched to solve this problem. You know two of them–Airbrake ( Hoptoad) and Exceptional. But you likely didn’t know about their ugly third cousin RightErrors.com.

All three services were offspring of Ruby on Rails service-companies. Airbrake came from thoughtbot. Exceptional came from Contrast. And RightErrors came from ELC Technologies.

contrast and thoughtbot team photo

OK. RightErrors didn’t officially launch. Mainly because while at ELC, Jonathan founded a bunch of new business concepts, and only a small fraction of them succeeded. In 2008 the new ELC businesses succeeding were RightScale and RightSignature–and they stole the thunder from any further development on RightErrors (or Farlanders, RightMirror, RightBoard and a few others :- ). Even though it didn’t launch, the seed was planted–not just for an error reporting service but for much more… hold that thought for now.

Growing Airbrake and Exceptional

The teams at Contrast and thoughtbot were finding that their side-business-error-handling-companies were getting great organic uptake.

“Scaling issues are often described as ‘great problems to have’—but Exceptional truly exploded and we often found ourselves staying up late to calm our newborn,”  jokes Eoghan, founder of Contrast.

And at thoughtbot,

“There were times we’d be getting slammed with 150,000 requests per minute, or with 500MB of session data, because some website was going crazy. Running Airbrake was like being under a constant DoS attack!”, exclaimed founder, Chad Pytel.

Getting hundreds of dollars a month on your service might feel like free money for the first few months–after 3 years, high-traffic scaling, supporting tens of thousands of customer support requests–the money stopped feeling “free.” And the whole endeavor became more of a distraction than a source of passion and inspiration. For Contrast, this was paramount…

Passion and 2011: By Jonathan.

In 2007, I moved to Ireland. I’ve 6 kids and an Irish wife–and there’s a romantic notion of living with the family in a quaint European city–like Dublin, Ireland. ELC had a solid team in Santa Barbara and I worked remotely + frequent visits. Anyone living in Ireland will tell you–it’s really a small Country. I managed to avoid the tech scene for the first two years in the Country. Then at the end of 2009 I got a phonecall from a random Irishman looking for space in Dublin for a Rails meetup. The caller was Paul Campbell. Many of you know Paul. He’s half of the creative force behind funconf as well as an early Contrast teammate and consultant to the stars of the Ruby on Rails community. We became instant friends.

Yes–this is all relevant–or equally irrelevant–but important for the telling of the story. But I can speed things up: 2010 was a year of change–I exited RightScale and started advising CloudKick; I sold ELC and started commuting one-day-a-week to Accel London. And in 2011 I moved to San Francisco with a small motley crew of teammates (an Irishman and Brit–who had been dating my au pair!) to mature my newest startup. As it happens–this one simmered rather than soared and by the end of the year fates collided.

Paul Campbell sent me a short note to meet up with Contrast’s founder Eoghan McCabe who was visiting San Francisco. Eoghan and I had great discussion about Exceptional and the future of development practices. And he shared that there was an opportunity for a new team for Exceptional.

“Jonathan introduced us to great suitors for the business. But their vision for the product remained at odds with our dreams for Exceptional. And planning to put the product completely in the hands of the new team, it was important to us that we were on the same page so that our customers would be properly taken care of.”

And so a deal was done–our team took up the Exceptional reigns–and freed from distraction, Eoghan’s team put-together the dream-launch of their new venture.

Airbrake

During 2011 the thoughtbot team also had a call to focus. They had launched CopyCopter, Trajectory and had a new project Apprentice.io brewing–all while running their thriving consultancy, leading best practices and maintaining Airbrake. And Airbrake was growing like crazy–attracting attention and needing attention.

copycopter trajectory apprentice.io

And late in 2011 the new Exceptional team met with thoughtbot to talk about future direction and potential cooperation. What happened next is exceptional. We started talking about the big picture behind our businesses. That the way we develop software has changed. That our tools are worse today than they were 10 years ago. And we were all passionate about seeing our products catalyze better development practices–and better lives–for developers.

For instance–how many of you are test-driven or BDD teams? How many use continuous integration? And how much do you monitor your code coverage–or keep builds from production from your build status? And if you’re doing such a good job covering your code and building your builds–why are you still using one of our services IN PRODUCTION?

Well–to us the answer is obvious. Yes, we want to be test-driven. Yes, we want to have our CI server always operational and blocking deploys. But in reality, only a fraction of teams have the diligence to implement these practices–and even those that do know that you will still find new exception-causing use cases once you let the mayhem of real life usage onto your product. And that is why you’re using us in production.

But that means that you are getting tremendous value from the exceptions you get from us. You can think of it as XDD (user eXperience Driven Development)–we give you a real-life cross-section of the areas of your codebase that need love and attention. Not mock-pain felt by mock tests–but real pain felt by real users. And by making these user experiences visible, you have a tangible agile metric–user experience pain–that you can track to help maintain the velocity that moves your features forward with the right level of end-user experience for your product.

And we don’t just need to be a metric for your iteration planning meetings. When we do collect an exception, we get all the environment details of what was happening when the exception occurred–and we can use this information to help you identify where in your code to focus AND to give you a starting point for the right kind of test to add to your test suite. This and much more vision came from our conversation with the thoughtbot team: graphing exception volume over time; complex filtering of exceptions (only see crawlers / only see logged in users); community-wide insight on exception resolution (gem combo causing common exceptions); better error page experience for users; and more.

By the end of the visit we had agreed to find a path for Airbrake and Exceptional to work together–and today we’re announcing that Exceptional has acquired Airbrake to focus efforts and bring the best next-generation development practices to our combined 75,000 development teams!

 

What’s Next

Firstly we want to thank Eoghan, Des and Ciaran and Chad, Dan, Matt, Joe, and Jon and all of the other contributors who brought to life Airbrake and Exceptional. You have been phenomenal to work with–we wholeheartedly support you and your new ventures. Yes, you do want to signup for Intercom.io right now to start hearing what it takes to find Premium users in your Freemium userbase. And–unless you miraculously have a glut of great developers and designers–you want to join Apprentice.io to have access to highly-trained up-and-coming talent. We are customers of both services.

And we want to thank Airbrake and Exceptional’s community. You are the heart and soul of the internet. Literally–you are Groupon and Square and Posterous and Patch and HubSpot and GrubWithUs and Pinterest and EngineYard and Uber and Monster and Friendster and Foursquare and Kickstarter and 74,990 others.

We have fantastic plans for 2012, but our first priority is to match the service and support you’ve come to expect. There are high-traffic, big data challenges and a tremendous variety of environments to support. This quarter we are committed to giving you exceptional support and building a strong foundation. Then each quarter this year we will be releasing major product updates that make our lives as developers better.

Upcoming Updates:

Along the way, we will be running outreach to our community. You’ll see us saying hi when you log in (thank you Intercom!) and you’ll see us in real life sponsoring local events. Here’s a brief calendar of where we’ll be and when:

  • Berlin, Germany – Today / Now! 
  • Dublin, Ireland – February
  • London, England – February (This Thursday)
  • Los Angeles – March
  • Krakow, Poland – April
  • Moscow, Russia – May
  • Beijing, China – June
  • Tokyo, Japan – July
  • Chicago – August
  • New York – Late 2012
  • San Francisco – Always

And more coming…

We hope to have the opportunity to meet and everyone of our users: to hear your feedback, to learn about your practices and creative passions–and share a pint.

Cheers!
@Ben , Stu , Colleen, @Jonathan, Helen, Fredrik and Teri

February 7th, 2012  |  Published in News

We ♥ Exceptions.

Today Contrast announced the sale of Exceptional to us, the new guardians of Exceptional. We’re a motley crew with a passion for DevOps. The new team comes from an ecletic background with experience in consumer apps, business apps, cloudOps and developer tools. Most of you have already met us via Intercom.

We’re passionate about creating the best tools for developers. Enabling developers to craft, push and deploy at the speed required by today’s businesses. We’ll be making some exciting announcements over the coming weeks.

The new team will be celebrating the acquisition with a Mad Men style office hours. Starting at 1pm on Tuesday 24th at our San Francisco Office.  A post office happy hour will kick off at 5pm .

We wish the intercom team the very busy of luck on their new venture. If you’re a web app owner, we highly recommend installing it.

Press? Want to find out more. Download our press release.

January 19th, 2012  |  Published in News

The Importance of Tracking Exceptions

As a solo founder and app developer, launching and maintaining an app – any app – can be a significant undertaking. It may not seem like much at first but there is a lot of information that you need to keep track of and questions that need to be answered. Here are some questions I needed to have answered when building and launching my app, Scheduling:

  • Are my servers still up and doing what they’re supposed to do?
  • Are my users getting emails from the application?
  • Are my users experiencing any errors?

For the purposes of this article, I’m going to concentrate on the last question: Are my users experiencing errors? As you may have gathered from the fact that you’re reading this on the Exceptional blog, I use Exceptional to track errors in the application. There’s a lot you can extrapolate from simple exception tracking, though.

Even with a strict TDD methodology, errors happen in an application. In my experience working on both large and small scale applications, developers always miss a few possibilities for behavior of an application. This can happen for many reasons: apps run differently with a lot of data compared to a little data in development, users figure out new and interesting ways to use (read: break) your application, and more. Keeping track of, and responding to, these errors helps to give you something that’s difficult to come by in this day and age: focus.

During beta, Exceptional was my to-do list: I would keep track of and (separately) prioritize bugs that needed to be fixed based on the information in Exceptional. Closing the error in Exceptional would mean, for me, it was done and the affected users were contacted. I still occasionally use Exceptional as my to-do list, though the app is, at this point, stable enough that I don’t much need to.

If you’re a developer, exception tracking is useful for keeping track of regressions with a twist. I had one particular error that popped up in a few places. I fixed it three times in the course of a few days in different spots in the app. This was a sure sign that I needed to devote some time to refactoring.

Finally, quickly being informed of errors helps in customer service. You can pass in custom information to Exceptional and see it in the dashboard. I find this most useful with information such as passing an account name or user name/email. This can make proactive customer responses very easy and surprising. I had an issue early on in the official launch of Scheduling which resulted in a user seeing an error page. This is a bad thing™. I was able to proactively email the affected user within minutes letting them know that I was aware of the error and it was being fixed, along with apologizing for what happened. This goes a long way towards fostering good will.

The “The Importance of Tracking Exceptions” is a guest post by Jason Seifer / @jseifer .  If you have any interesting stories, tips, or best practices that you would like to share with the community send your submissions to ben@getexceptional.com

October 18th, 2011  |  Published in Uncategorized

Send Exceptions to GitHub Issues.

Last week we introduced a new service to Exceptional.  Account administrators can add  GitHub integration.  Our first GitHub integration lets users send exceptions to GitHub creating a GitHub Issue. 

We will be adding more features to the GitHub service in the coming months, if you have a suggestion a feature, send them to support@getexceptional.com .

Step 1. Goto Account -> Services.  Add GitHub. 

2. Add the github username / organisation name and it’s repro. 

— NOTE. You have to add your organization + repro name/repo.  e.g. exceptional/exceptional-app

3. Authorise the Exceptional to access your GitHub account. 

4. At the bottom of an individual exception you will see a link to ‘Send to GitHub’.  You can edit the Issue title and content, but it will be based on the Exception detail information. 

5. You can now view the exception on GitHub. Our roadmap includes  automatically closing the exception on Exceptional once it’s closed on GitHub.  

September 5th, 2011  |  Published in Uncategorized

iOS, Coldfusion, Flask, Pylons, and more

The Exceptional community has been prolific of late, producing many new Exceptional clients meaning that Exceptional is far from being a Rails only web application. Let’s take a run through what’s available…

iOS

Jörg Polakowski has created an excellent iOS client meaning that Exceptional can now catch and aggregate errors thrown by iPhone and iPad apps. You can find his client here on Github.

Coldfusion

Brian Lambert created a Coldfusion client for Exceptional, which is available again on Github.

Pylons

The guys at DataDog wrote their own Pylons client for Exceptional. Guess where you’ll find it? Github.

Flask

Jonathan Zempel wrote a client for the Python microframework Flask.

11 Supported envrionments

These 4 new clients means Exceptional can now catch errors in Rails 3, Rails 2, Rack, Ruby, Javascript, PHP, Django, iOS, Coldfusion, Pylons, and Flask. If you see a framework missing and are willing to help us out, have a look at our API  and drop us a line (des at getexceptional dot com) and we’ll talk further.

March 29th, 2011  |  Published in Notifiers, Uncategorized

Meet our Customers 9

There are some very cool Exceptional customers featured in this round, from ticket tracking to HTML5 & audio all the way to health & fitness classes in Atlanta. 

Sifter

In Contrast, we’ve been using Sifter heavily for about a year. It’s a fantastic tool for tracking issues during software development. Obviously this is a competitive space, and it takes a lot to stand out. Sifter has a beautifully clean UI and crucially the “Create a ticket” workflow is so simple that your whole team will get onboard using it. A good measure of the quality of a web application is the amount of people who end up using it after a recommendation. For me Sifter is scoring very highly there.

Sounds good

Sounds good  is a online video sound editor, using the latest HTML5 technologies. You can upload any video, add any sound from their extensive sample gallery, or add your own sounds from your computer and experiment with the result right away in your browser. Once you are happy with the results, Sounds good renders the video for you. The most recent feature added is YouTube support letting you send your video straight to YouTube, but even cooler, add your own soundtrack to a YouTube video!. 

Sounds good is a great example of what’s possible using HTML5, try their simple demo to see how impressive it is. 

Cooleaf

Cooleaf is a marketplace for health & fitness instructors, and would-be students. Their beta roll-out covers Atlanta,  Georgia,  where they’ve secured partnerships with Atlanta’s leading providers of health/wellness services including Yoga Studios, Health Clubs, and Personal Trainers. 

As always, we’re happy to feature all Exceptional customers on our blog, if you’re interested in this, simply send a message to des at getexceptional.com 

March 25th, 2011  |  Published in Meet our customers, Uncategorized

Exceptional engineer required

Exceptional tracks errors in Ruby apps. It’s wildly popular. It now processes a few hundred million errors per month for over 10,000 apps—including some very big and popular ones. Every day, new people add Exceptional to their apps. And increasingly, these apps are not even Ruby. They’re PHP, Javascript, Python and more.

Our rapid rate of growth requires some serious help. We’re looking for an excellent software engineer to manage and improve the product.

 You must have:

  1. many years of Ruby (and Rails) experience and
  2. many years of database admin experience.

It would be nice if you also had:

  1. a computer science (or equivalent) education,
  2. great social skills and the right attitude to give our customers appropriately warm, fuzzy feelings.

Your responsibilities will include working with us to implement brand new features, dealing with technical enquiries from our customers, making fixes to the app, liaising with developers to help them build plugins for their technology of choice. You’ll work remotely.

In return, we’ll:

  1. retain you on contract for a fixed amount of days each week (starting with 3, growing to 5 before the end of the year),
  2. give you a cut of the profit.

This is a big deal. Exceptional has been run entirely by the Contrast team to-date and we’re ready to take it to the next level and give one talented and very able programmer a tonne of responsibility and control over the product. We’re doing this because we feel that Exceptional’s future will be brightest if driven by someone with fresh ideas and energy and not distracted by the other goings on in our team.

Please get in touch if you’re interested.

ben@exceptional.io

March 21st, 2011  |  Published in Uncategorized

Exceptional on Fluid.app

Benjamin Stein is an avid Exceptional user, who accesses the product via Fluid.app. He has crafted a Site Specific Browser for Exceptional that includes an Dock badge showing the number of open Exceptions. 

You can grab it from GitHub or Userscripts.org.

Nice work Benjamin!

March 16th, 2011  |  Published in Uncategorized

Meet our Customers 8

Car repairs, Organising sports events and a Chicago marketplace make up this weeks featured customers.

2CarPros.com

2CarPros are a Father & Son team of master car repair technicians. They run 2CarPros.com – a site for helping car owners diagnose and fix their problems.

Teamer.net

Teamer.net is an Irish customer, which is always great to see. Teamer.net eases frustration for sports team organisers by automating the tasks associated with getting your team together each week. Emails, SMS, Teamer notifies you every way you want, and lets you track member availability Teamer is free to use and has over 600,000 members across 40,000 teams worldwide.

FeelGoodTrader

FeelGoodTrader is a new Chicago-based online marketplace. Buy/sell new and used items to community members, and browse easily with visual search The site also makes it easy to share items and get email/sms notifications when new listings are posted on the site. All in all it’s a very easy way to shop.

February 9th, 2011  |  Published in Meet our customers, Uncategorized

Recent Performance Issues

This e-mail was sent to all of our active users on 3 Feb 2011.

OUR RECENT PERFORMANCE ISSUES

Exceptional has had some severe performance issues over the past 5 days. For this we are incredibly sorry. We know Exceptional is a part of your workflow, and this past week we haven’t delivered a good service. We have fixed the problems that occurred, and we’ve now made many changes to speed Exceptional up. 

Nonetheless, developers to developers, we owe you an explanation…

WE EXCEEDED RDS STORAGE LIMITS

On the 28 January our main database ran out of storage space due to a truly massive, unprecedented spike in new exceptions—despite our API rate limiting. It hit the 1TB storage limit imposed by Amazon RDS on a single database instance. We attacked the problem in two ways: firstly implementing a sharding strategy, and secondly reclaiming space on the database.

WE NOW SHARD OUR DATA

Exception data is now sharded by app, meaning that the load on our most frequently accessed data (occurrence data) is now distributed across our database cluster. We’re also working hard to clean out extraneous data. The web app may have some short periods of downtime as a result of this improvement work, however, we’ll schedule it for the off-peak hours. As always, no exception data will be lost.

WE’RE SPEEDING UP THE WEB APP

We have improved the performance of the web application. You’ll notice that occurrence data is now loaded via AJAX, and is cached by the browser. This makes it easier to get straight to your exception data, and also speeds up all subsequent page loads. We’re quite pleased with the results of this, and we’re looking for ways to speed up the web app further.

API and web app performance should be better than ever before. We’ll aggressively monitor our storage capacities in the future, though our new architecture will give us much more scaleability and flexibility.

WE’RE GRATEFUL FOR YOUR SUPPORT

Thank you so much, for your time, patience, and custom.

Sincerely,

Ciarán, Wal, Eoghan, Des and David.

February 8th, 2011  |  Published in Uncategorized