November 24, 2009
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: evolution.
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!