What I learned bootstrapping a 6-figure business from school

When I got to college three years ago I set two goals for myself. By the time I graduated I wanted to:

  1. Be well read
  2. Learn how to build a real software business

By real business I meant a business that has paying customers from day one and that makes enough money every month that I could work on it full time when I graduated.

Although I wouldn’t go as far as to call myself well-read (I don’t think that’s something to be achieved, just pursued) I can confidently cross goal number two off of my list:

In about 11 months we’ve built Firefly up to well into the 6 figures in recurring revenue.

We’ve done this primarily through two channels: on-site website signups and large partnerships.

In July we announced a partnership with Olark to roll our cobrowsing out to their 5,000 paying customers. We’ve also struck similar deals with much larger customer support companies as well as companies in other verticals like financial services.

What makes this somewhat special is that there’s just two of us working on the business, we’re entirely bootstrapped (except for 20k from the excellent Dorm Room Fund), and this year I’m going to be a senior in college.

Because the past few years have been such a crazy ride, I wanted to take some time to write down some of the things I’ve learned along the way.

This ain’t your typical advice blog post
There’s a ton of startup advice out there from successful founders.

What separates my writing is that I was a beginner so recently that I can still accurately remember what it feels like.

I remember seeing people building products, and getting them featured on blogs, and getting userbases, and giving speeches, and writing popular blog posts and feeling like I was seeing it all through a pane of impossibly thick glass: I could look but I couldn’t touch. I remember finishing a product and feeling like I didn’t even know where to start looking for people to show it to. It’s a lonely, vapid, discouraging feeling.

I’m hardly a huge success yet, but I do have a thing or two to say about getting from there to running a real business with real customers that pay you real money every month. And about doing it while juggling classwork, a social life and maintaining a blog on the side.

Sticking a knife in the silver bullet
If you sit in on a college philosophy class (particularly philosophy of mind) you’re likely to hear a lot about what’s called emergent phenomena: that is complex systems that arise out of simple components but that are not reducible to those components.

In other words, things that are more than the sum of their parts.

A business is a complex system that demonstrates emergence. And just like you’re not going to find consciousness in any one particular neuron in the brain, you’re not going to find “the secret” to a business’s success in any one particular place. There’s no silver bullet.

Rather, a successful business is the result of thousands of different elements that interact together at the same time.

The problem with most posts like this is that they tend to focus on The 5 Things That Made Our Company Successful because it’s easy to write about and easy to digest. Or they’ll give you 5 Things You Should Do To Exit For A Billion Dollars.

At best this is either an oversimplification or a misunderstanding of success.

When you hear someone say: “Business X was successful because they did Y” take it with a grain of salt. When you really start to unpack how things play out inside of an actual business, you’ll find that it’s a lot more complicated than that.

We just tell simple stories because they’re easier to digest.

Cargo cults and TechCrunch
During most of my freshman year I looked at raising money and being in TechCrunch as a panacea for all startup problems.

I thought to myself, “All we have to do once we build the app is get it in TechCrunch and start getting some investor interest. That will legitimize us enough that things will start to take off.”

Having been in TechCrunch (and almost every other tech-related publication) and having garnered lots of investment interest along the way, I can confidently tell you that while it certainly doesn’t hurt, it’s neither a necessary nor sufficient component of a successful business.

In his book, Surely You’re Joking Mr. Feynman Nobel-prize winning physicist Richard Feynman tells a (probably apocryphal) story about what he calls cargo cults:

“In the South Seas there is a cargo cult of people. During the war they saw airplanes land with lots of good materials, and they want the same thing to happen now. So they’ve arranged to make things like runways, to put fires along the sides of the runways, to make a wooden hut for a man to sit in, with two wooden pieces on his head like headphones and bars of bamboo sticking out like antennas – he’s the controller – and they wait for the airplanes to land.

They’re doing everything right. The form is perfect. It looks exactly the way it looked before. But it doesn’t work.

No airplanes land.

So I call these things cargo cult science, because they follow all the apparent precepts and forms of scientific investigation, but they’re missing something essential, because the planes don’t land.”

When I see inexperienced entrepreneurs focusing solely on getting press or trying to raise money it reminds me a lot of this passage. The unconscious thinking is this:

“Successful entrepreneurs tend to get lots of coverage and raise lots of money, therefore to be a successful entrepreneur I need to get those things.”

As Nassim Taleb would say: This points the arrow of causation in a direction it shouldn’t go.

It’s true that if your business is taking off you’re going to get lots of investor interest and lots of press opportunities. But lots of investor interest and press does not create a successful business.

Focusing on those external things instead of nailing down the value you’re providing is like strapping on the wooden headphones and waiting for the planes to land. It looks and feels like starting a company, but it’s missing something essential that dooms it.

Little white lies and vanity metrics
What does the cargo cult entrepreneur lack?

It’s very simple: honesty.

What I used to do is try to run from my mistakes. It was’t overt; I wasn’t deluded. Rather, I did it in small ways that were easy to hide from myself. I would tell myself little stories and look at things that happened in certain ways that would make it seem like we were doing better than we actually were.

It’s the kind of thing that makes you say to yourself, “We’ve had over 1,000 signups since launch” instead of “We have 1 paying customer.” Or what makes you say to yourself, “We’re growing 50% week-over-week” when you know that you’ve only done that for two weeks in a row and you only have 10 customers.

These kind of little, up-to-a-point, white lies work in most aspects of life. But in rocket science and entrepreneurhsip they’re killer. They’re how you blow up on the launch pad.

Telling yourself, “we’re growing 50% week-over-week” when you have 10 customers and just concentrating on getting press and raising money is the equivalent of standing out on a freshly-minted landing strip with wooden headphones on and waiting for the planes to land.

Be suspicious of your success or lack thereof. Vision and tenacity are good qualities when you’re starting out. But there’s a fine line between vision and tenacity and pigheaded foolishness.

It’s important to try to actually figure out whether what you’re doing is actually going to work.

Evolution requires making mistakes
In his book Intuition Pumps and other Tools for Thinking philosopher Daniel Dennet talks about how the process of evolution relates to knowledge acquisition, innovation and scientific research. Basically, he argues that evolution (either physical or intellectual) happens by making mistakes.

The basic gist is: if you want to discover something new – which you have to do all the time if you’re starting a company – you have to be open to making mistakes, and you have to be honest about them.

“The chief trick to making good mistakes is not to hide them – especially not from yourself. Instead of turning away in denial when you make a mistake, you should become a connoisseur of your own mistakes, turning them over in your mind as if they were works of art, which in a way they are.”

Feynman says something similar:

“There is one feature I notice that is generally missing in cargo cult science…It’s a kind of scientific integrity, a principle of scientific thought that corresponds to a kind of utter honesty – a kind of leaning over backwards.”

Feynman argues that in order to make real scientific progress we have to be completely honest with our results. The same is true of entrepreneurship.

It’s very difficult to realize this at first. It feels so good to tell yourself you’re doing well when you’re really not.

But when you experience the terrible and utter agony of having wasted 6 months on an idea that you should have realized wouldn’t work 5 and a half months ago you’ll start to get honest with yourself very quickly.

Dealing with uncertainty
When it comes to your startup, there’s one big problem with being honest with yourself: you’re dealing with so much uncertainty that it can actually be very difficult to tell how well you’re doing.

What a lot of people don’t realize is that the uncertainty in your startup isn’t just about whether people want to buy your product. As a young entrepreneur, you also have to deal with a lot of uncertainty about yourself.

You’ve never done a biz dev deal before. You’ve never sold a product before. You’ve never built a landing page before. You’ve never pitched a product to the CEO of a large company. You’ve never set up an Adwords campaign before. You’ve never had to write a sales script. You’ve never had to hire someone.

And now you have to do all of these things. All at once.

This means that you’re terrible at interpreting data about how well you’re doing and why things aren’t working.

Are people not buying my product because it’s not useful? Or is it because my pitch is bad? Or is it because I’m not reaching out to the right people? Or did I just get unlucky and pitch 10 people in a row who were having a bad day?

When you’re just starting out you interpret every little thing that happens as a sign of future things to come.

Did the prospect not buy? Your company sucks! You’re doomed to fail.

That journalist agreed to cover you? You’re gonna be rich!

A lot of this process is learning how to settle down and take things in stride. When things aren’t working, it’s important to try to get at the root cause. Don’t just go with the most convenient answer. Don’t make judgments too quickly. Let things play out. Experiment freely.

Learning to deal with people
What you’ll find when you really start doing this stuff seriously is that most of the problems that you encounter have to do with people. Partners, customers, co-founders, employees.

Particularly when it comes to co-founders, interpersonal conflicts around what should be done at any given time are very common.

Example A: You argue about small, meaningless details a lot.

How to decide under uncertainty

The first thing to recognize is that most of the small things you argue about as an early stage startup are of no consequence. I remember one product I worked on I had a 30-minute argument over whether the checkout button should say “Buy Now!” or “Try For Free.”

It was ridiculous. And looking back, it had absolutely no bearing on our success (or lack thereof.)

The reason that these kind of arguments are ludicrous is this: nobody really has any idea what they’re talking about.

I wanted it to say “Buy Now!” because I had read some article on Hacker News that said that buttons with “Buy Now!” on them convert better than buttons that just said “Buy!”

My cofounder wanted a “Try For Free” button because that’s the button text that Salesforce uses on their site and they know what they’re doing.

Does this sound familiar? These are the kind of arguments that inexperienced cofounders have. Luckily there are a few tools you can use to resolve them:

Let’s test!
With something as simple as button text, the first thing to try is saying something like: “Let’s test both,” and move on. This makes everyone happy because both options are going to be tried and the better one will win out.

Sometimes it’s as simple as that. But most of the time it isn’t.

Even if you offer to test both options (whether it’s a button color, pricing, or something else) someone will commonly throw out an argument that I like to call the “if-this-then-that.”

If-this-then-that”
Let’s say you’re discussing pricing. One person is arguing for higher pricing, and the other is arguing for lower pricing. You might say, “Well why don’t we try low pricing at first, and then slowly raise it so that we can find the optimal pricepoint.”

A common argument against this is: “*If* we start with a low pricepoint, then we’ll devalue the brand! People will think we’re cheap, that we don’t provide value. That we’re not premium. And even if we raise the price after that they’ll still associate us with cheapness. Think about what happened with X large company.”

There are two things wrong with this kind of argument:

1. People don’t care.

No one will notice if some rinky-dink startup doubles their prices a week after launch. Or cuts them in half. It really does not matter.

People only remember you once you succeed. If you spend a thousand days doing a thousand different stupid things before you take off, the Wikipedia description of your company’s history will start with day 1001.

2. Everything after then is pure conjecture.

As an inexperienced entrepreneur, the reality is that even if there are consequences to your decision you have absolutely no ability to make predictions about what those consequences will be.

If you’re inexperienced, you can’t make long-term “then” statements. You can’t even make short-term “then” statements. Even most experienced entrepreneurs can’t do this.

Don’t argue about things you don’t know or can’t know. The general rule of thumb is this: it’s not a big deal what your checkout button says as long as you have one. But pay attention to which version seems to work better.

Figure out what you really want
Sometimes a debate morphs from a discussion to a battle of the wills. This happens when one or both parties shifts from trying to find the best solution, to trying to win.

It’s pretty easy to tell when this is happening because you’ll catch yourself arguing for why the company will fail, and the investors will demand their money back, and the employees will leave, and the press will laugh, and your mom won’t even return your calls if the button color on the new landing page isn’t changed from orange to blue.

Reading a book like Crucial Conversations will help you deal with situations like these. What they’ll recommend (and what works for me) is something like this:

When you or someone you’re working with starts doing this take a step back and ask yourself: what do I really want?

Do I want to win the argument, or do I want to do what’s best for the business? What are the real potential consequences that I can see for this decision? Can I really judge what will happen “then?” Am I just being close-minded for the sake of it?

You are not Elon Musk
Any time you catch yourself saying, “Well look at how X big company does it.” or “Well X big company tried that and it didn’t work for them,” please smack yourself in the face.

You have absolutely no understanding of the market dynamics that made X big company’s strategy a success or failure. That’s because most of your information comes from magazines, books, movies, and newspaper articles, many of which are poorly researched or report only part of the truth.

And even if you did somehow get good information from these sources, you have absolutely no evidence to suggest that what worked for them will work for you because of the simple fact that you don’t understand their business.

An argument like that is a nice rhetorical strategy, but has no bearing on reality.

It’s not about networking, it’s about finding champions
A lot of young founders concentrate on networking. They run around collecting business cards and making zillions of “contacts” that they’ll “reach out to” at some nebulous point in the future when the time is right.

Let me cut right through the crap on that for you: contacts are what you put in your eyes. Relationships are what’s important.

Do away with your attention-seeking, sycophantic, obsequious side when dealing with people. If you concentrate on forming real relationships with them, you don’t spew bullshit, and you don’t make them feel like you’re meeting with them because you want something interesting things happen: you get champions.

You don’t pick your champions, they’ll just emerge. They’ll help you without being asked to. The key is to value them and treat them well.

I can trace back almost every important introduction and every bit of press I’ve gotten over the last three years to two or three people.

That’s really all you need.

Don’t be a fascist dictator
If the 20th century has taught us one thing, it’s that central planning doesn’t work. If you’re a good capitalist entrepreneur you don’t believe in central planning. Ironically enough, many young entrepreneurs act as if they do.

They construct a grand vision in their heads. They map out in infinite detail every single aspect of their business: what customer’s will like, what features it will have, what the branding should look like, how the marketing will work.

And they do all of this because they read a bunch of magazine articles and watched a bunch of movies and that’s how it happened there.

But the same issues that befall a centrally planned communist nation are bound to befall you if you do this. The reality is this:

You can’t see into the future. Any plan that you put in place that relies on future-telling will fail.

A great company is not birthed whole into the world. It starts as a small product that fits in to a larger vision that you can expand aggressively with market feedback.

You get market feedback by selling. The more you sell, the more you understand the product, and the more you understand what kind of company you’re going to be.

You either die a failure or live long enough to see yourself become a success
The most important books I’ve read in the last four years are by Nassim Taleb: Fooled By Randomness, Black Swan and Anti-Fragile. They’re important because he formalizes and takes to its logical conclusion what every experienced entrepreneur knows instinctively:

Our brains are not equipped to handle uncertainty, non-linearities and randomness. We can’t beat uncertainty by seeing in to the future. But there are certain things we can do to expose ourselves to the upside of non-linearities (like your product going viral) without exposing ourselves to their downsides (“blowing up” as he puts it.)

It’s easy to imagine startup progress as a linear curve. You get better each and every day. You sign up a few more customers every day. You’re up and to the right all the time.

That’s actually not at all how things go. In my experience, startups are long periods of doing huge amounts of work with very little positive result.

It seems like you’re doing everything right. Maybe you sign a few customers here or there, but nothing fantastic happens. It’s like spitting in to a hurricane or rolling an impossibly large boulder up a hill.

You want to give up and work on something that will “scale” better.

Here’s the way things seem to work in situations like this: nothing happens until everything happens all at once.

You stay at 100 customers for the first 4 months and then you sign up 1,000 in month 5. You don’t close a single deal for 12 months and then you close 3 within a month.

Startup progress is a stepwise function, not a linear one.

For example, here’s a graph of DuckDuckGo’s traffic from July of 2010 until now:

The first thing to note is that this graph starts 2 years after DuckDuckGo was initially founded.

So at the beginning of the graph, at year 2 of the project, look at that whole period there from July until January: growth was very linear. If at that point, after 2 years of work, you go through a period of 6 months where growth was basically linear you would probably be about ready to throw in the towel. Any sane person would have done it long ago.

But then they get a slight bump in January.

But then for an ENTIRE YEAR they get very slow upward growth.

Then a major spike. Then another ENTIRE YEAR growth is slow. I mean, jeez, this is painful right?

And then BOOM, the NSA stuff happened.

I guarantee you Gabriel Weinberg didn’t know the NSA scandal was going to be so huge in January 2010. But he was willing to slog through the muck for years and years with growth spikes only happening every once in a while until the really big one hit.

In hindsight, he looks like a frickin’ genius, doesn’t he? (He is actually probably a genius.)

Incidentally this is what our revenue graph looks like as well (our spikes are much more modest.)

Emotionally it’s impossible to understand this by just looking at a graph. It is monumentally difficult to get through even a few days with no positive feedback, let alone months or years.

But one thing I believe strongly is that when it comes to entrepreneurship you either die a failure or live long enough to see yourself become a hero. You either have the intestinal fortitude to keep tinkering or you take yourself out of the game.

I’ve been coding since I was 10. I launched businesses in middle school, high school and college. And it’s only now, after years and years of trying, that we’ve built something that’s sustainable.

It’s hard!

And all of it takes an enormous amount of time. You can’t work on something for 2 months and get results. You’re not going to build something of value over night. It’s a process that takes years.

If you’re honest with yourself about what’s going well and what’s not; if you’re genuinely trying to get better at what you do; if you recognize the challenges of dealing with uncertainty and non-linearity; if you value the people you work with; and if you do your best to work on interesting things, then good things will happen. It just takes time.

The beauty of this whole thing is this: if you can program, time is something that you’ll never run out of.

If you can code, for the rest of your life you can build businesses where the only cost is your time. You don’t need investment; you don’t need employees; you don’t need to quit your job; you don’t need to leave school; you don’t need anything.

When I graduate this year I won’t have to get a job. I can work on something every day that I built with my friends from the ground up. Something that literally came out of our heads into the world. We made jobs for ourselves with just a couple of laptops and a lot of hard work.

I’d recommend it.


11 Sep 2013, 4:15pm | 60 comments

 

Never miss a new post



Subscribe!