Writing a Google Chrome Extension for FreshBooks
I love what I do – working on improving the FreshBooks API and providing the tools for our 3rd party developers to build great integrations with our platform. One of the coolest things we do at FreshBooks are our HackOffs. Its a concept similar to Google’s legendary “20 percent time”. About once a month, we developers stop whatever we’re doing and get to build whatever we want.
As one of FreshBooks’ newest developers, I had just finished my one month of support, where every day, I would spend hours listening to customer’s problems, the features they liked and the features they wished existed.The experience inspired me to build something for our customers that they would love. With my first HackOff coming up, it would be the perfect opportunity. I spent weeks wondering what would be most useful to our customers. More gateways? More graphs? More cornified pages? My ideas were ambitious, but an annoying problem kept popping up; as a new developer, I had too little experience with the app’s code.
Around the same time, I was starting to use FreshBooks to invoice clients I had done work for. One of the most frustrating things for me, was knowing when I got paid. I would sit there, refreshing my FreshBooks page every few hours, checking to see if there were any changes at all. That’s when it hit me. I couldn’t be the only one doing this. Why did I have to be doing the refreshing? I knew how to work with our API; why not build something that checked for me?
I’d wanted to work with Google Chrome Extensions for a while now, so I decided to experiment and build something similar to the Google Mail Checker extension. One of the benefits of writing extensions is their heightened browser permissions, namely being allowed to violate the same-origins policy and talk directly to the FreshBooks API through the browser.
On the day of the HackOff, I eagerly got to work, hammering away at the extension. When it finally came time to present the extension to the company, I decided to do a fully functional demo, so I activated the extension, went into my account and paid an invoice. I held my breath. Five seconds later, a little notification popped from my browser with the words, “Yippee! You just got paid!”. Applause erupted from the company – my HackOff was a success! Two months later, the official FreshBooks chrome extension was released.