Freshbooks, éxito fuera de Silicon Valley

En noviembre mi familia decidió ir de viaje a Toronto. Mis padres querían revivir un viaje que hicimos hace más de 10 años cuando mis hermanas y yo éramos niños. La idea era llegar a Buffalo, NY donde los pasajes son mas económicos y guiar hasta llegar a Toronto parando en cualquier sitio que pareciera interesante.

Tan pronto me enteré de la idea lo primero que pensé es que tenia que buscar la forma de aprovechar este viaje para hacer contactos o para participar de algún evento relacionado a startups de internet. Buscando online me enteré que mi servicio de facturación online Freshbooks tiene oficinas en Toronto. Así que lo que hice fue escribir un email de presentación, diciendo quien era y pidiendo que me dejaran visitar las oficinas y hablar con los fundadores o alguien del equipo de development para aprender sobre como trabajan y hacer un post para este blog.

Cuando llegue a Toronto tuve problemas con mi iPhone, casi nunca pude verificar mis correos y en fin nunca vi una respuesta a mi petición. No me lo tomé mal pero la verdad es que por un momento pensé que si yo estuviera en su posición me encantaria hablar con otra gente que está interesada en todo este tema de compañías de “tecnología”. Una vez llegue a mi casa en Puerto Rico verifiqué mi email y encontré una sorpresa, una contestación a mi email inicial.

Hey there Giovanni,

Sure! Let me know more information about what you are looking for in regards to stopping by our offices and we’ll see if we can get someone to sit down with you and give you a tour.

Hope this helps,

Randy Panté, FreshBooks Support

Nunca vi este correo y fue enviado dos días después de mi email inicial. Después de sentirme un poco abochornado por no ver este correo le respondí explicando lo que había pasado y pidiendo que al menos me dejaran enviar unas cuantas preguntas para que los fundadores y developers me contestaran. Rapidamente me contestaron y accedieron a mi petición.

Hice dos grupos individuales de preguntas unas dirigidas a los fundadores sobre temas de negocios y otras dirigidas a los developers sobre temas técnicos. Aquí les dejo las preguntas y respuestas tal como las recibí. Me tomé la libertad de hacer spell-check al email, pero el contenido está intacto.

Preguntas a los fundadores

What is the background of the founders (work / education)?
Mike McDerment (CEO, co-founder): Undergrad Commerce drop-out. Started events business that lead to a career in “conversion consulting” which lead to creating FreshBooks from a bleeding neck wound.

Joe Sawada (co-founder): University Professor of Computer Science, PhD in Computer Science

What made you become an entrepreneur?
It just happened, but it always was going to happen. Mike found a big problem (explained below), and just kept building it from this concept.

Mike’s mother always said he would be an entrepreneur – she knew before he did. Mike could never work for somebody; he had to work for himself. He always had the drive to be building something, if he’s just spinning his wheels, he’s bored.

What is the story of Freshbooks? How did you decide to build an
invoicing system?

Once upon a time there was a disorganized web designer who worked from home and used Word to create his invoices. The web designer was constantly finding he was spending too much valuable time wondering who owed him money and how much…it was a stress and a complete waste of energy.

This was just the start. One day, everything changed. He was creating an invoice for a client he had invoiced before. He opened up an old invoice for that client, to save time because the client’s information was already on it, and filled out the details of work. He then hit “Save”. And the original invoice was gone, with no record as he did not hit “Save As”. Upon realizing what he had done, he snapped, “I’ve had it – there has to be a better way”.

This fateful day happened in early January 2003, and the web designer spent all his spare time the rest of that month building a web application his clients could login to view their invoices – something that looked professional, created invoices simply, and would even tell him which clients had viewed their invoices. It was a great time saver, and adding the ability to know when clients viewed invoices, allowed him to follow-up with the right clients, getting him paid faster.

Today that service is called FreshBooks and in case you haven’t guessed it, that web designer was Mike McDerment, co-founder and CEO. Over the past 7 years, Mike has built a company of 60, serving over 2 million users who have invoiced over 7 billion dollars.

What are the challenges of making a startup outside of Silicon Valley?
More of an opportunity than anything… you avoid falling into conventional thinking start-up thinking, the talent and rent comes cheaper and you can always visit (they have an airport).

The main setback is the volume of talent (you can still find good people) and the constant knowledge sharing that comes with the network down there. You have a lot of people doing exactly what you are doing, so learning is rampant. But you can always visit every few months to get more inspiriation.

Do you have any advice to other founders about getting noticed in a
crowded space?

Be remarkable. Take risks. Do something different. It will take a lot of work, and some trail and error, but that is what it takes.


How long did it take for you to get enough customers to work on Freshbooks full time and have decent salaries, are you there?
FreshBooks is there now…

However, it took about 2 years until Mike started to fire his clients from his consulting business, and 3 years until they were all gone.

Also, after the 1st year of FreshBooks, it only had 8 customers. However, Mike kept going through perseverance, and he really find something he love to do. He also surrounded himself with the right people, who could compliment him by doing what they love to do.

Preguntas a los developers

What challenges do you think are unique to Freshbooks, technically

FreshBooks has a reasonable amount of code debt, which we work hard to pay off. But it’s fairly typical of any web-app.

What language you use for the application?
The ‘application’ that our customers interact with directly is written in PHP, however, there are several programs that support FreshBooks and those applications are written in Python or Ruby.

Are you using any third-party web framework?
Yes, the Pylons powers our internal API service as well as other ‘skunkworks’ projects. We also use Sinatra to power our internal payments API.

What database do you use? Anything special about your schemas or
strategy for making queries? Using a relational db to work more like a no-sql db?

We use MySQL. Our data access and storage strategies are fairly typical for a web application, we don’t use any NoSQL database technologies not do we treat MySQL as a no-sql data store.

How do you deal with scaling, is that an issue?
We have several scaling strategies and they vary depending on the different parts of our architecture. FreshBooks, the application that most users interact, the PHP front-end and middleware, scale horizontally behind load-balancers, and the database scales vertically right now with beefier servers.

We scale our internal applications by running several instances of the app behind Nginx.

Finally, other parts of the FreshBooks architecture are scaled out by completing jobs in the background using RabbitMQ and Sparkplug (FreshBooks built) applications.

Here is a blogpost with more detail:

Do you have an automated deployment system in place, please explain?
Yes, our production deployments are automated using a framework called Puppet, while internal testing and release candidate deploys are run through Hudson or Fabric scripts.

Have you thought about how to use HTML5 technologies on Freshbooks?
Not at this time.

Do you have mobile (iPhone, Android, RIM) developers?
No, FreshBooks provides a rich and Robust API that third party developers can use to create mobile apps.

Have you thought of making rich HTML5 web apps vs. native apps for mobile?
Not at this time.