Back to Blog Home

Evolution

There comes a time in any application’s life when it needs more than a new coat of paint to keep up with the times. New technologies make new things possible, and help you grow and save money at the same time. Over the years, FreshBooks has been consistently updated with newer and better technology under the hood, but the time has come for something a little more radical than small-scale refactorings can manage.

We started building the business in 2003 with a PHP application, written in the dark days before web frameworks were in widespread use. Much of the sort of functionality that modern developers take for granted in their frameworks we had to build from scratch, like access control, session management, and database connectivity. Over the years we’ve steadily improved and updated that code, to bring it into line with modern practices, but there’s a law of diminishing returns at work here.

Any successful application eventually reaches a point where it’s more costly to continue refactoring the existing platform than it is to make a switch to an entirely new platform. Early in 2009 the technology team at FreshBooks agreed that the current platform was reaching that point, and that a new platform should be chosen and prepared for a migration.

This was not an easy agreement to reach. FreshBooks’ technical team is a team of peers, so there was never just one voice that could lay down the law and decide for everyone. Many possibilities were explored in months of discussion, review and testing, but in the end the team came together around a specific set of technologies that everyone agreed would serve the business best.

We’ve got a bunch of stories coming out of this process — it’s a huge part of the evolution of FreshBooks, and so it’s fitting that the new technology has been named “Evolve” by the developers. Evolve is already in production, although there’s no way to tell from the application, and there’s a lot of work still to be done. Our developers will be talking more and more about this new technology, however. There’s lots to tell here, but we wanted to kick things off with a general announcement. Most of the technical details will be emerging on our developer blog, but we’ll have plenty to talk about here. Stay tuned!

And don’t forget, FreshBooks is hiring developers and designers! If you’re looking to help create the future for our technology, send in your resume — or send in a friend’s. We offer a $1500 bounty for folks who direct us to a new hire. Don’t miss out!


  • http://www.michaelbrooks.ca Michael

    I really appreciate that you’re sharing your experiences on upgrading the back-end technology. As far as I know, this is a topic that is not written about often. I think that your upcoming stories about Evolve will expose a lot of valuable information to both developer and business teams. Thanks!

  • Pingback: Across Weirdish Wild Space » Blog Archive » Freshbooks Evolution

  • http://blog.wakatara.com Daryl

    Interestingly, we’ve just made the same decision (after much debate) here at GetUp! in Australia http://getup.org and decided to back off a legacy php application in favour of moving over to Rails as a web framework and dev standard.

    Would be interested in specfiically why you chose Django/python over Rails/Ruby though.

    And yes, love you’re sharing this stuff on the blog. The details in the dev blog are also super interesting.

  • http://www.freshbooks.com/our-team.php#corey Corey Reid

    Hey Michael — glad to hear there’s interest out there! Making this decision and then executing on it has really challenged our team, so we hope the story of this transition is interesting (maybe even inspiring!) to other groups facing similar problems.

    Daryl — Keep us posted on how your transition goes! Python and Ruby are both great tools — at the end of the day it’s the little things about our existing app and our situation that make Python the better choice for us, as opposed to some big philosophical difference. We are big Ruby fans, though, and it sees use in some parts of our operation.

    Stay tuned!

  • http://www.online-finanzen.info Constantin

    Just want to join Michael and want to thank you for the information. Just keep going.

  • http://www.prepaid-karte.kostenlos.com/ kai

    “New technologies make new things possible, and help you grow and save money at the same time.”
    I wonder if this is true, or just a phrase?
    New technologies are mony maker for a very few people, the rest are just stuff.

  • http://chiggsy.com Kevin

    “New technologies make new things possible, and help you grow and save money at the same time.”

    I don’t think this is just a phrase actually. Web development tends to be conservative, oddly enough. The best time to make such a change is their situation: You can write tests cases from the old code, and implement using the new.

    Hope this went well…


Rodney's 404 Handler Plugin plugged in.