kaashif's blog

Programming, with some mathematics on the side

Don't stick to what you're good at - my startup catastrophes

2022-02-01

The conventional wisdom is that if you're starting a business you should do something you're good at or know something about. If you're a software engineer, you should probably be the guy running engineering. If you're in sales, you should probably be the sales guy. I mean, that makes sense.

This is going to sound stupid and obvious, but people have a strong bias towards doing things they enjoy and are good at. And when you're doing those things it feels good and even worse, it feels productive.

Why is that bad? Because feeling productive can have almost no correlation to being productive.

I quit my job to do things that felt more productive. Spoiler alert: they were dismal failures and produced nothing except some bitter lessons! Isn't that fun?

I'm going to dissect some of my failed businesses:

  1. I tried to re-sell NordVPN activation keys, passing on some of the bulk discount. What could go wrong - people already buy NordVPN and this is just NordVPN but cheaper, right? Not quite, which was a rather painful lesson.

  2. I co-founded a remittance service (think TransferWise, Western Union) that was faster, cheaper, and aimed mainly at transfers from the UK to under-served African countries. We had people lining up to use it, we had all of the tech in place to actually provide the service, it was 10x cheaper, 10x faster, worked on weekends, and the Financial Conduct Authority would've never approved it. Oh.

Why did I keep (or even start) working on them? Because writing software felt good. It felt productive. But it wasn't! I'll go through what I think the warning signs were and how you (and I) can avoid making the same mistakes.

Warning sign 0: I hadn't talked to users before building software

When starting out with my VPN resale business, the first thing I did was build the website and set up payments with Stripe. That seems reasonable, doesn't it? I thought that people would love to buy a cheaper NordVPN plan. After all, NordVPN has lots of customers, so if I sell literally the same product but cheaper, I'll sell more. The only problem is getting the word out, right?

No, there's something missing from that plan: actually talking to potential users and seeing if they want it! After building the website, I did talk to several potential users and saw some gigantic red flags that I didn't recognise. Here are some people I talked to:

  1. Myself! I already have a VPN, but I bought like a 5 year subscription to another provider. I didn't even want to buy my own product since I already had a VPN and didn't need another.

  2. Friends: my friends with VPNs weren't interested since they...already had VPNs, and my friends without didn't care. But I pitched my idea to them and they said "That sounds great, the potential market is huge!" "NordVPN is great, I hear they make a lot of money!" but none of them bought anything from me.

  3. People on Twitter: I ran a few ads on Twitter and some people retweeted, trying to alert NordVPN to the scam I was running, since it's obviously impossible that I could be selling for cheaper than buying directly. No-one bought anything, even after I contacted them and explained how I was doing it (NordVPN gives discounts to resellers who buy in bulk).

  4. People on Reddit: I was banned from some subs for shilling my product. I tried to be subtle about it but I got caught! Whoops.

I never encountered anyone who actually wanted to buy the product, despite encountering many people who literally said to me that they "would" buy it. You should at least find one user before you build the product! And it is crucial that they agree to pay you, and then actually do pay you at some point, likely after you build the product.

I stuck with this VPN reselling idea because I enjoyed building it. I enjoyed building a web app, I enjoyed integrating with NordVPN's API, I enjoyed integrating with Stripe and PayPal. I should've tried to find users and got them to buy something before I spent all this time building software.

Building software felt productive, but didn't produce anything valuable. In fact, the value was negative since I spent weeks doing work that was ultimately just thrown away. If I had just spoken to people and really tried to find customers before building anything, I'd have avoided that wasted time.

Taking a day to speak to people and avoid two weeks of waste is an insanely high level of productivity. I knew talking to users was important, but I guess I didn't really get it until I felt that sinking feeling of despair when I realised I had wasted weeks of effort.

Is there a magic way I could've realised I was wasting my time? Yes. It turns out I just had to believe my own eyes.

Warning sign 1: I didn't believe my KPI

KPI means Key Performance Indicator.

For a startup where you're selling something (a service, a product), the only KPI that really makes sense is revenue. You can count users, hits, downloads, etc, all you want, but those don't mean anything unless they pay you. If they're not paying you, you aren't validating the core hypothesis which is that people will pay you for something!

You might think it's enough for people to say "I would pay for that" but it's not! They're lying! Read this book: http://momtestbook.com/. Your KPI is revenue, your experiments should be simple to evaluate: success means revenue goes up, failure means it doesn't. Vague non-committal compliments should not be taken as a good sign.

Yes, that means you are failing whenever your revenue isn't growing. It feels bad to realise this. It's easier to convince yourself that you built this thing, and that's progress. That's what I did: my eyes told me my KPI was zero, but I chose not to believe them. Instead, I was measuring my progress by the amount of work I had put into my minimal viable product (MVP). After all, your MVP needs to scale, and it needs to work for complete strangers.

Wrong! So wrong! Don't measure inputs (time, code), measure outputs (revenue)!

MVPs don't even have to involve code. I later realised that I could just ask friends and family to pay me for a VPN plan via a Stripe invoice, and I could send them the key. The first sale would've moved the needle and been real progress - it would've increased the KPI. After weeks of intensive coding, I had that epiphany and just started to try to sell by just speaking to people.

I asked several people to buy a plan and they all said no. Not in as many words: some people changed the topic, deflected, claimed they'd buy at an unspecified future date, and so on. These are all no. Rejection hurts so I moved on to finishing the site, and plastering Google, Reddit, and Twitter with ads. Thousands of people went to my site, hundreds went to the checkout page, no-one bought anything. Interaction with users led me to believe that everyone thought it was some kind of scam, or they weren't actually interested.

From another perspective, I ran thousands of experiments, all indicating my hypothesis that people would buy VPNs from some random site just because it was cheaper was false. I even tried planting trees with a portion of the revenue, but that didn't work either - that's just a nonsense gimmick or marketing ploy that doesn't really solve a valuable problem for anyone.

After revenue failed to budge, I eventually learnt the lesson that if my KPI was telling me my idea wasn't working, I should move on. Again, the reason it took me so long to realise this was that the novelty of running ads, building a website, building a checkout, and so on, hadn't worn off.

I just like building stuff and would do it for free. So that's what I ended up doing inadvertently.

This warning relates to market risk - the risk that the market won't need or buy your product. The product itself was simple enough, the MVP was trivial (speaking to people and getting them to buy something). Even the website wasn't that hard to build, although it wasn't minimal. I could easily build the product but no-one wanted it.

There's another kind of risk - the risk that one can't even deliver the product. That's what I learnt about in my next attempt.

Warning sign 2: High barriers to entry and product risk

I moved on. While using YCombinator's Startup School forum, I met a few possible co-founders, but only one had a problem he was solving which I personally had. I had this problem and never even considered that I could be the one to solve it. This sense that I could actually improve my own life in a valuable way was intoxicating. My problem was sending money to Africa cheaply and quickly.

I'm a dual citizen of the UK and Mauritius (a lovely little island in the Indian Ocean). Sending money via banks incurs foreign exchange fees and vaguely defined fees for whatever it is that banks do (it turns out they do a lot). Fintech startups like Wise didn't offer transfers to Mauritius, and the ones that did (e.g. Remitly) offered pretty bad FX rates. Money sent on Friday would arrive the next week despite the fact that domestic bank transfers did work on weekends.

This was a problem I had personally. It was a high value problem since a lot of people send a lot of money back home, and do it regularly. We spoke to over a hundred people (friends, family, and relatives) who not only wanted a solution, but were willing to trust us with their money if we could deliver. This is all great!

Next step: we spent a few months building the product. AAH NO! The KPI is still at zero, we're supposed to get people to pay for something. Why didn't we, despite the lesson I ostensibly learnt earlier?

One word: regulation.

Consumer fintech is extremely regulated, especially in the UK. It would have been literally illegal for us to start charging people and moving their money abroad without registering with the Financial Conduct Authority. To register, we had to prove that we had the ability to build and deliver the product. They weren't concerned about market risk, they were concerned about product risk.

We focused on the tech, building an Android app, a website, a backend integrating with Plaid and Visa, bank APIs, all kinds of stuff. It all looked good, it seemed technically possible to initiate a transfer and actually send money quickly, using something resembling a digital hawala system.

We realised too late, after months of work, that the FCA would never approve such a product. Not one built by us, a couple of guys with no experience in regulatory compliance and no idea what we actually had to do to comply with the regulations. We thought we knew what we had to do to comply, but as it turns out, we didn't.

What went wrong?

  1. Talking to users felt good but didn't actually move our KPI. You can breathe only when that number goes up. Talking to users is a basic requirement that we fulfilled, but it's not enough.

  2. Building the software felt good and we forgot about our KPI. Is it really this easy to build a working fintech service? It sure is, technology sure is great! We must be doing well, look at all of this code!

  3. We never considered, not for a second, that we couldn't build the product. We knew we had the technical ability (and were right), but we had a big case of the Dunning-Kruger effect - being a computer whiz doesn't actually grant you magic powers to convince the regulator that you're totally not building a money laundering service.

It's tempting to blame the regulator, but there are reasons for these regulations. We were really killed by our lack of appreciation for product risk. We failed to seriously consider issues outside our expertise that meant we just couldn't deliver the product.

It's probably for the best. I once saw a video of Michael Seibel (co-founder of justin.tv, later called Twitch) and he said that once you mess up with people's money, that's it. You get the Wikipedia page with "your company messed up big time" and maybe even broke the law. Googling your name brings up the fact that you can't be trusted with customers' money. That's permanent, it doesn't go away, and is an outcome that we avoided at least.

Conclusion

There's a clear trajectory here and clear lessons learnt, so these experiences weren't all bad. The key points are startlingly simple, to the point that I feel like an idiot even writing this stuff down.

Here's the checklist:

  • Talk to users
  • Get them to pay you
  • Don't break the law

Here are some things that you shouldn't do unless ABSOLUTELY necessary:

  • Build software
  • Run ads
  • Spend money

Note that this stuff seems somewhat easier if you have a B2B startup, since the number of users to speak to is usually much smaller, and they are much more willing to pay you if your product is valuable to them. I haven't personally done that, maybe I'll try that at some point.

I console myself with something I saw in a lecture from Steve Jobs (I know, I know): you can't fake scar tissue. I've got a lot of very real (figurative) scar tissue now, and I got it all crawling through the razor-blade riddled crawlspace that is the real world.

Hunt people down and solve their problems!