Archive for September, 2008
They say choosing your partner is the most important decision you will make in life. I’d say choosing your co-founder(s) is the most important decision you will make in building your company. Here are five tips to help you choose wisely:
Demand Passion
Starting a company is lonely, thankless and costly. It will test the deepest fibers of your being. The only thing that melts these obstacles away, leaves you raring for more, is passion. You can’t fake passion. It lights up your eyes and charges your voice when you talk about what you love. If you have a great idea, and you want to bring it to life, find someone who is passionate about your vision.
Trust
You either have it or you don’t. When the dark clouds come – and they will – you find out really quickly if you trust someone. When your mortgage is on the line, you better have trust. Mistrust is a cancer in relationships; it breeds sleepless nights and suspicion. The good news is you can avoid it by choosing a founder you trust, then work to foster deeper trust in your relationship over time. Keep in mind that it’s a never ending process.
More than Money
There’s more to life than money, and chances are money is a long way off if you are building a company. So again, find someone with passion as they are sure to be in it for more than the money.
Choose your Compliment
Like a partner, a co-founder should be strong in areas you are not. A great compliment to your skills is someone who loves to do things you hate, someone who makes the sum of your parts greater than the whole.
Give them Equity
This may seem like a no-brainer when founding a company, but I meet people who expect others to care as much as them about the business when they don’t own any of it. If you believe they will if they don’t own a piece of the business you are seriously deluded.
I have great news for all you small business owners and operators out there in the world. FreshBooks now accepts AMEX for monthly subscriptions!
If you want to start using your AMEX for your FreshBooks account, just login, click Home -> Account Info, and click the ‘Update the credit card’ link to change the credit card we are using to bill your account. If you are new to FreshBooks, just choose AMEX in the list of credit cards to use for your account. As always, if you want to pay by other means such as PayPal, just send us a note and we will send you an invoice for one year’s worth of FreshBooks.
I know what you are thinking, what took you so long?
Well it is a bit of a long story, so bear with me. Anyone who is running a business in Canada but needs to accept AMEX in US funds might find this very informing.
So, back in 2004 we released FreshBooks to the hounds with version 2.1 – it was amazing, you could track time, invoice your clients, and even upload and download documents. The pricing was pretty close to what it is now, and you could pay us with any Visa or Mastercard. We were using a Canadian processor to collect payments in US dollars. Everything worked great until we got our first request for AMEX. After a bit of research, I realized we couldn’t simply add AMEX as an option with our processor. As it turns out, AMEX is a different breed and it requires another account with AMEX themselves to accept it. I quickly setup an account with AMEX Canada, thinking it would be similar to our processor for Visa and Mastercard and we actually started accepting AMEX. We added AMEX to FreshBooks and everything was working great until I realized that something was missing….the exchange. What was happening is that we were collecting in US funds, but AMEX was depositing the same amount to our Canadian bank account except in Canadian dollars.
So for example, someone would sign up for a Shuttle Bus, pay $14 USD, actually get debited that amount from their account, then AMEX would deposit $14 CAD into our account. A bit of a history lesson here, the US dollar hasn’t always been as weak as it is right now. In fact, back in 2005, $1 USD was worth $1.25 CAD. So, $14 USD was worth $17.50 CAD and we were missing out on the extra $2.50. The funny thing is when I asked AMEX about it, they had no idea what was going on and couldn’t explain where the $2.50 was going. They also told us to stop doing this immediately because it wasn’t supposed to work and I’m sure it was creating an accounting nightmare for them.
So, since we wanted to keep our pricing model simple and consistent, we realized we had to get a US AMEX account before we could start accepting AMEX. On the surface, this seemed like a simple problem with a simple solution, just call up AMEX US and create an account. That’s when the complications started to pile up. In order to get a US AMEX account, we needed a US Bank Account and a US Tax ID. In order to get a US Bank Account, we needed a US Address and US Tax ID. In order to get a US Tax ID, we needed a US company with a US officer. Sadly, none of us FreshBookers were American, so getting a US AMEX account was all of a sudden very complicated.
The good news is that I am actually a dual citizen, so I started the long process of getting a US Passport hoping it would eventually lead to FreshBooks accepting AMEX. Believe it or not, it took over three years to finally have all the pieces in place to request a US AMEX account. Last week I did it and within a few days, we were accepting and succesfully processing AMEX payments. Finally!
If you are running a Canadian business and you want to start accepting AMEX in US funds, send me a note, and I can give you some more war stories and advice on how to get this done ideally in less than three years.
Recently, FreshBooks had the fortune to be part of a major shake up of the streets of Toronto. There’s a new car rental service in town, and it only costs $1 / day. If you’ve seen some MINI Coopers covered in Yahoo! purple, you’ve seen CityFlitz.

CityFlitz is set to disrupt the incumbents, ZipCar and Autoshare in a big way, and FreshBooks is proud to be part of that story.
0 to 60 at Internet speed
CityFlitz needed to build their infrastructure in a hurry. They looked at legacy software options in the market and realized they’d be constrained by the practices of the very industry they were about to overturn. After their technology partner, Palomino System Innovations looked at existing car rental software, they realized the legacy software served the old industry too well, and it consequently did too much. As Markus Latzel, CEO of Palomino, explained to me,
It tried to do everything: billing, reporting, staff management, fleet management, tracking early returns. 80% of the features just didn’t apply to CityFlitz, and the remaining 20% couldn’t be customized for our scenario. They did try to help us, but it was too difficult to manage changes to their software.
Forced to chart their own course, the last thing they wanted to do was build everything from scratch. Instead, they built their business by snapping together the work of others. They solved their problem by combining a cherry-picked handful of highly focused Software-as-a-Service building blocks, and it they did quickly, cheaply, and kick ass.
We are proud to be part of their solution. CityFlitz relies on FreshBooks for billing and collections, in conjunction with
- Yahoo! Maps for location tracking and booking,
- PayPal for online payment services,
- and Palomino’s own WebPal platform to manage web content, car inventory and customer profiles.
All these components snap together through their well-constructed APIs, and all the CityFlitz customers see is a seamless user experience.
There’s plenty of road ahead
What Palomino has done for CityFlitz is amazing. 20 years ago, it would have been incredibly difficult to create a new car rental service with only a small amount of capital. Pervasive wireless Internet means they don’t need a retail location to manage their fleet. They operate almost entirely through the Internet. Today, they have proved you just need some spare cars, a laptop, and a dream.
In the words of Markus,
This has been a fun project. We have proven that on-demand SaaS has now matured to a level where we can handle complex business processes by combining specialized, high-quality online services. The times of one-system-tries-to-do-it-all are over.
At FreshBooks, customer service and support are included for free. To us people are people – we don’t treat them differently if they pay us a monthly fee or not. Traditionally, software providers have charged extra for support and we think this is crap. Support is as valuable to us as it is to the people who reach out when they need help.
We never thought too much about our free service “policy” when we started. We just figured if someone needed help they should get it. Our customers, let’s call them the Fortune 50 million, are entrepreneurs. They are busy and they don’t want to spend their time meddling with their billing service. If a person calls, it’s probably our fault for not designing FreshBooks to be easy enough to use, so they deserve support.
For all the bean counters who see support as a cost center, think again. Telephone calls and email and the forums threads are research tools. Every person you connect with helps inform decisions about what’s working and what’s not, and gives you ideas about what to do next. In all seriousness, I would pay for this service.
So when people ask, “how can you afford to support free users?” I ask, “how can you afford not to?”
Joe and I founded FreshBooks, and we learned how to get things done five and a half years ago when it was just two of us talking over the phone working after hours in separate locations. All we had were our ideas and our energy.
Honestly, I did not know a thing about design then – I studied business in school and enjoyed art so everything I did was by intuition. Joe had his doctorate in computer science, but knew little about the technologies and tools available to developers – he just knew how to solve the problem in front of him with his own smarts.
I remember a day – not so long ago in fact – that product design meetings were utterly draining. They were highly emotional events where people (namely Joe and I) were going toe to toe with our points of view. Needless to say things became unproductive.
Recognizing this, I reached out for help. I invited Jon Lax – who I admire as the founder of my favorite Toronto interactive agency – to come observe us and see if he could help us overcome our bad habits.
Jon’s approach was to sit each of us down as individuals (the product team was Joe and me and Levi and Ben and Daniel) to hear our respective points of view. He learned that our dedication to the product was off the charts, and we all fundamentally wanted the same things, but our process was broken.
What he did was encourage us to elect a “Design Dictator” – someone who would be the last word on decisions. He made it clear that the problem was that we were doing design by committee and everyone felt they could make the final decision – especially Joe and I. Neither of us were willing to give on decisions.
In this case, the group agreed that it was me who really was the owner of the product and therefore I ought to be the dictator. For us to be able to proceed, Joe would have to surrender to the new process of decision making and trust I would make good decisions for everyone.
It takes a big person to surrender decisions about their baby, and to Joe’s credit he recognized it was the best thing. The results of this one change in our design process have been transformative.
Over the years building FreshBooks we’ve encountered bottle necks in how we work that have been sources of inefficiency, inconsistency and frustration for us all. Inevitably, these pains are born out of a way of working that we’ve outgrown and we’ve found them in just about every part of the business: design, development, customer service, hiring and onboarding.
Some times it takes an expert outsider to come in and effect change, most other times it gets done internally. Any way you slice it, making those changes demands a surrender to process.
Over the last year or so we’ve had conversations with our users in which we’ve heard a need to make FreshBooks work with the SPF mail authentication protocol. SPF, or Sender Policy Framework, is a way to publish a list of what mail servers are permitted to originate mail for a domain. The idea behind SPF is that if a spammer or malicious person forges your domain (a joe-job), the recipients can detect that the messages were forged and reject the mail, saving you from having to receive all the bounces, complaints, and retribution that you’d otherwise get.
Since FreshBooks sends mail on our users’ behalf, from their domains, until now any FreshBooks users who wanted to use SPF have had to list our mail servers’ IP addresses in their list of allowed mail servers, or permit all mail servers to send mail. Neither of those situations are ideal, especially after last weekend’s server move, in which the address from which we send mail changed! And there’s always the chance that it could change again in future.
To address this problem, SPF allows you to include the contents of someone else’s record in your own with the include: directive, essentially saying “we trust this other organization’s list of mail servers”, and FreshBooks is now publishing an SPF record which you can include in your own.
To use it, add
include:_spf.freshbooks.com
to your SPF record (and remove any of a:server1.freshbooks.com, ip4:72.32.48.26, and ip4:72.3.208.114 that you might already have there.)
With that, you’ve told anyone checking your SPF record that you trust FreshBooks’ own list of our mail servers, which we’ll always keep up to date with all of the hosts from which your mail may originate, and your customers who check your SPF record will know that mail FreshBooks sends on your behalf is legitimate.
We hope this will make it easier to use SPF with FreshBooks!
For the last day or two we’ve received a number of reports that FreshBooks was running far slower than it ever had in the past. Given that this weekend we’d had some downtime to upgrade our infrastructure, things running slowly the first business day after that was the last thing we expected.
But there’s good news: after a long day of checking every corner, we managed to track down the problem to an unexpected bottleneck in MySQL. Clearing up that bottleneck has let us tap the full speed of our new
hardware.
Among other measurements, we monitor site performance by measuring the amount of time it takes to log in and send an invoice from various locations around the world. In the graph below you can see how eliminating that bottleneck has helped performance significantly:

FreshBooks is now running faster than ever. Thanks to those of you who struggled through yesterday with us. We are now pleased to introduce you to our new hardware and the fastest running FreshBooks experience to date – enjoy!
For those curious about what happened, there’s some details under the cut.
Read the rest of this entry »
Earlier today the FreshBooks service experienced approximately half an hour of downtime.
At approximately 11:37 AM Eastern the FreshBooks website and application were not available. We are not happy to report this and before I explain what happened, I would like to apologize to anyone that was affected.
Today’s downtime was the result of human error configuring routers at Rackspace while they were moving our old database servers to the new cabinet, compounded by miscommunication between our Rackspace account manager and their network technicians and problems with Rackspace’s phone system.
Timeline of events (EDT):
Rackspace started move: 11:26
Website unavailable: 11:37
Workaround in place: 12:05
Root cause resolved: 13:00 approx
(plus about a minute at around 12:45 to redo the workaround).
The workaround was an SSH tunnel from our database servers to our web servers on one of the vhost addresses that was still working. (No traffic could reach our database servers, but some traffic could reach some addresses on our webservers from our database servers).
In future, we’ll be scheduling changes in which Rackspace has the ability to cause collateral damage after hours, even when those changes don’t affect production systems.
Again, we are sorry for the inconveniences this caused, and if you were adversely affected by the downtime, we invite you to please send us a note or give us a call so that we can hear from you and look into making it up to you.
Thank you for your understanding.
For future reference, we have a status blog at http://status.freshbooks.com which gives real-time updates of the FreshBooks service.
We are upgrading our infrastructure to improve performance and plan for the future. To accommodate this, we have two scheduled downtimes coming up this week.
On Wednesday September 3, 2008 at approximately 12:00 PM Eastern, your FreshBooks account will be unavailable for approximately five minutes while we switch to our new beefy database servers. We know this is early in the month and an inconvenient time for some, but it’s the best time for some very worthwhile reasons, so please bear with us.
Next, on Saturday September 6, 2008 Sunday, September 7, 2008 starting at approximately 11:30 PM 1:30 AM Eastern, your FreshBooks account and our public website will be unavailable while we move our web servers across our primary datacenter. We estimate this will take approximately one hour. You can monitor our progress at: http://status.freshbooks.com
If you have any questions about the changes or anything else please let us know.
We apologize for any inconvenience this may cause you and thank you in advance for you patience.
(Update: The start time for the second downtime described above was off by two hours because Rich can’t calculate time zone differences. September 7 at around 1:30 AM Eastern/5:30 AM GMT is correct.)