I wrote this blog post back in August as a form of personal therapy. It wasn’t originally intended to be made public, but after some encouragement from friends, I’ve decided to publish it.
Two years ago, I formed a daily habit of waking up early in the morning and going for a run. To get myself out the door, I had only one simple rule — not to look at my phone before leaving my apartment. Once I’m outside, I know I won’t go back in, no matter what I see in my inbox. After all, no situation is so critical that it can’t wait for a couple of hours, right?
One day this March, I followed my morning routine. As usual, once out of the door, I glanced at my inbox. One subject line hit me like a punch in the stomach. “I quit.” Without even opening the message, I already knew its content. Such emails had become common in the past month.
Just a couple of weeks ago, our lead investor refused to sign a deal that had been six months in the making, as much as leaving us for dead with a huge due diligence bill. It was a big blow to company morale, and as a result, many of our employees decided to seek out more financially stable jobs where they would not have to worry about their futures.
Unfortunately, even after months of hard work, our service still wasn’t quite ready for customers, and we needed additional investment. I had focused on the scale prematurely, and we were all being punished for my poor decision.
In the weeks following, I reached out to many investors with whom we had already established a relationship. None were interested. So far, we had raised a little more than $1M from a couple of angels and friends, but it was becoming painfully obvious that no new investor would be willing to dump money into a sinking ship. We were forced to sit down with the remaining team members and push hard on finishing the service to a point where we could convince clients to start paying for it.
Since the inception of the company, I had invested a great deal of time interviewing potential customers. I was trying to avoid the fate of my previous startup, for which we had built incredible technology, only to discover that the market just wasn’t there. But this time, my plan seemed to be working. In the first year, the early adopters list had already grown to hundreds of companies, but with no revenue yet.
So we sorted through the list and selected a couple of early adopters who we felt would be more open to use our buggy, features poor service. After a lot of persuasion, one company signed on for a trial. The day the pilot started, we had enough money for fewer than two weeks.
These two weeks were some of the hardest in my life. I had already thrown all my personal money into the company and convinced some of the existing investors to personally loan me anything they could, so I could at least pay my employees. I was all in.
Our interface wasn’t ready yet, so we had to manually export all gathered data into a CSV file, which was then sent over to the client. To make the results more interesting and readable, I created a couple of models to plot the data out into nice graphs. Still, we struggled to keep the system from failing, and spent most of those two weeks manually connecting to the servers and patching up the most pressing bugs. The team spent many sleepless nights on this seemingly never-ending hell.
However, the initial positive results had a calming effect on us. For the first time, we could see the fruits of our labor, and it was everything I had dreamed about on the day I started the company. The client was pleasantly surprised, and offered to put some money in so we wouldn’t have to close the doors before we’d even had the chance to talk about the contract.
The paperwork was a drag, but we didn’t have much of a choice. It felt like eternity before the money showed up in our bank account. Once again, we got very excited about the work and focused all our energy on the product.
The excitement didn’t last long. After we paid off the company’s debt, our runway was only four months and three popsicles. I considered starting to look for new investors, but we had no new data to prove our worth, and I knew I would be wasting my time. Instead we decided to reach out to more customers, to see if we could persuade them to give us a chance. Just to break even, we would need 11 mid-size customers, and every last one of them would have to pay on time.
While our lawyers were working on the paperwork, the team rebuilt the code base yet again, and finally finished the first interface. We started reaching out to more clients and sending demo accounts. However, the UI was too simplistic and most of the prospective customers weren’t willing to pay for the service until we provided more data. We reached out to over 40 companies in course of the month, but only three got excited enough to start paying a very small fee to keep their accounts open.
Then, disaster hit. Two weeks into the new month, our hosting company (AWS) went down. Not for long, but long enough to destroy most of our infrastructure. As a scrappy little startup, we simply did not have the resources to build any redundancy into the system, and it took us a full week to bring it back to life. None of the new clients were willing to pay for a service that could go down for potentially days at a time. One left us completely, and the remaining two decided to stick around for another month. After some thinking, I’d decided to move us to back to Google Cloud, with which we’d had more experience.
Once again our future was looking grim. We were burning through money, but without any source of income. At the same time, we had to vacate our workspace, so we started looking for something inexpensive but nice. Since we’re based in San Francisco, meeting a leprechaun seemed more likely. Thankfully, our newest investor offered to shelter us for couple of days, sharing with us their beautiful office space in the financial district.
Settled into the temporary place, we began to rethink our whole infrastructure and data flow. At that time, we were processing around 4PB of data every month, and the amount was crushing us. Early on in the life of the company, I had made a couple of poor technological decisions. As a result, we were not able to keep up with the incoming traffic. On top of that, since our staff had shrunk to only eight people, I had to start coding again. It took the team awhile to get used to the changes I was introducing, but once we got on the same page, things started progressing quickly.
Still occupying the investor’s offices, the new month didn’t start too poorly. Running on the new infrastructure at Google, we hoped for the best. More importantly, we added three new customers to the two existing ones. I made myself available 24/7 to support their needs, and started working with the rest of the team on a more well thought through version of the system. The goal was a system that could scale to service the potential paying customers who were idly waiting for us to find more capacity. Finally, after weeks of hard work, the service stopped crashing every single day. Our few customers were satisfied enough to pay their monthly invoices without complaint.
We also managed to find a new, permanent home for the company, just around the corner from the offices of SoundCloud and Stripe. However, the move cut even deeper into our already dwindling cash resources. Our new landlord asked for three months of rent, plus we had to buy furniture, pay lawyers, etc. Even as we were bringing in more money, we were losing ground and still were far from breaking even.
I decided to approach a couple of new investors, although we had only one month’s worth of data. My efforts were to no avail. Few considered us an interesting opportunity, and the ones who did weren’t willing to put in the needed hundreds of thousands of dollars. Raising less was pointless, as it soon would have put us in the same precarious situation as before.
Even if most new investors didn’t see the value of our service, our existing customers did. The next month, we were also able to add a couple of new ones. More importantly, our existing customers ramped up their use of our service, and therefore their payments.
A new month came quickly, and I’d still had no luck with any new investors. I connected with a couple of friends in Europe who introduced me to local investors, but even after hours reaching out on Skype, I came away empty-handed. I couldn’t sleep more than two or three hours per night. Some nights were so bad that instead of sleeping, I went for run at 2am. I love running, because it’s hard to run and feel sorry for yourself at the same time.
I was daily recalculating our spending and cash on hand. No matter how many formulas I came up with, our bank account refused to reflect them. I was tired of chasing my own tail. I considered acquisition, but for that, we would need more time for negotiations, and we had almost none. As I ran out of options, I decided to focus on the customers. As a result, our revenue literally doubled, finally covering the bill for the servers. Still, it wasn’t enough.
I carefully approached our exiting customers to see if they would be willing to pre-pay for our services in exchange for a significant discount. I knew it would put us in a bad position later on as we would have subsidize some of the server costs, but we would at least buy ourselves a couple more weeks. I also started considering laying people off, but I knew that once I went down that road, I may never be able to rebuild the company. However, just as I was working on the new customers’ contracts, a new angel investor reached out and offered to put in enough to get us through the next couple of months.
I quickly put together all the required papers, hoping to close the investment as soon as humanly possible. Then, our existing investor also offered to put more money in at the same terms as the new investor. The combined sum was larger that what we had raised to date, and would allow us to focus on our product and grow our customer base.
Even though the paperwork would take weeks to finalize, I was finally able to get some sleep. The team started laying out a foundation for a new infrastructure. We rewrote most of our internal services from Python to Java and C++, moved from Hbase to Postgresql, and switched from RabbitMQ to GRPC/PubSub. These changes allowed us to double our monthly volume of data processed to around 8PB.
We also signed up four new customers. Unfortunately, we also lost one, our very first. I felt really down that day, but I knew it had to happen at some point.
And then August rolled around. August is my lucky month. I don’t know why, but many good things happen to me in August. Early in the month, we signed two more customers, and with those we finally hit profitability. I couldn’t believe it! Only four months after we signed our first customer, we would be able to cover our monthly expenses just from our income.
This may not seem like much, especially in comparison to the multi-billion-dollar companies that surround us here in Silicon Valley. But for our little company of ten employees, it is a significant achievement that gives us energy to push forward.
All my respect goes to the team who stuck around and pushed through this incredibly hard year. Thanks to their relentless work, our revenue literally tripled just in last three months. We’re now processing twice as much data as we did back in August, covering more than 3B videos and songs. We managed to acquire a new, simplified domain name that allowed us to rebrand the service. Even we loved the original name, it wasn’t the easiest to pronounce, at least for English speakers. We were also missing .com domain which didn’t help much. We also added 4 new team members and are currently looking for many new colleagues to join us.
Thanks Aaron Levie, Leo Povoltes, Aston Motes, Patrick Murphy, Brian Boys, Tomaz Stolfa and Gary Swart for readig the draft of this post.