July 9, 2020

Lessons learned from quitting my job and failing to start a business

8 min read
Image of Ryan Wilson
Ryan Wilson

I was lucky and got a software engineering job straight out of college. I joined a brand new team working on a brand new product. The product was an infant. It still needed basic things like analytics. The first few months were a rush. We were preparing for a launch on a big stage, working long hours, and writing a ton of code. This is what fresh college grads dream of.

Time passed by, and I started to grow complacent. The challenging problems to solve morphed from technical product challenges to organizational problems. It was a big company. There were a lot of dependencies, and each team had their own goals. As the naive college grad I was, I yearned for the days when it felt like we could focus on customer and product problems.

I ended up leaving that job for greener pastures. I got a new job that was a consulting firm commissioned by a larger company. I was more aware of big company politics going in. I joined a team tasked with a rewrite of a 15-year-old legacy system. I wrote a lot of code. The excitement of building things was there again. Like clockwork, that excitement started to fade. Work became tedious. It wasn't fulfilling.

Scratching the Itch

I had been dabbling in side projects since college. I had an itch to start a company of my own around a software product. I discovered online forums like Indiehackers, which helped me find out about bootstrapping. Related things like Startups for the Rest of Us and the Art of Product inspired me. Entrepreneurship is what I wanted to do. I wanted to make my own product decisions. I wanted to write a lot of code.

So I set this goal to start a business. I didn't understand what it meant. I consumed a ton of content: advice, stories, lessons learned from people who had done it before me. I got the concept but failed to internalize any of it. I was bold. I knew what a product needed. If only I had enough time to work on it. I needed to go full time.

On November 8, 2019, I quit my cushy full-time dev job. I went from making $90/hr a full 40 hours a week to making nothing. I was mentally and financially prepared. With no debt, minimal expenses, and enough money in the bank to last a year, I took the leap.

The moment I had been waiting for was finally here. I was free to work on anything I wanted. I could finally spend all my time building the features I knew were going to make my side project a game-changing piece of software. It was going to be an instant hit.

Gif of Polished Drag and Snap Functionality

The idea was a text editor that helps you write. The prominent feature was a canvas interface. You could organize documents, images, web pages, and other media in two-dimensional space to explore your thoughts when you write. You would be able to drag and snap ideas together to outline faster. On top of this thought exploration tool, I would add all the nice little features I found in other apps. Focus mode from iaWriter. Live markdown rendering like Typora. Grammar checking and readability scoring from Grammarly and HemingwayApp. Outfit it with integrations to platforms like WordPress so users can publish from the app when they finished.

Death Spiral

If you're thinking, "Alright, that's a lot of features. Pump the brakes dude. You need to find some real customers." You're right.

Working on this idea on the side while I was employed was fun because there were many cool features to build. Comfortable jobs shielded me from the reality of the project, so it never needed to work. It was buggy and unreliable. I was going to fix that once I had enough time to dive deep into it.

I didn't switch gears to customer development as I should have. I told myself I need to add feature x, and the customers would arrive at my doorstep in masses. So I developed feature x. Nothing happened.

"Okay, so it's better because of feature x," I would think to myself, "but what it needs is feature y."

The whole thing became a death spiral. Feature y became feature z. I kept cycling from feature to feature thinking success was always right there within reach. I was making a lot of progress on the product, but I wasn't making progress on building a business. It became exhausting. Depression set in.

I would sink hours into video games while staring at a whiteboard full of tasks. A few days of this would go by, and I'd come back reinvigorated.

"Okay, this is the feature set that's gonna do it," that ego-driven voice in my head would say. The ego is a pretty persuasive force.

The Realization

I could feel the lack of progress taking its toll. Something wasn't right, but I wouldn't admit it to myself. I started doing weekly update calls with a friend. My enthusiasm for building features convinced them that I was on the right track at first. A little more hard work and focus would do the trick.

After a few updates, my friend caught on that I was spinning my wheels. They started to nudge me. Asking, "Is this the best use of your time?" I still thought so. It wasn't.

I started to ruminate on that. Deep down, I knew I wasn't spending my time wisely. I had that feeling in my gut. My brain hadn't accepted it yet.

Then it clicked. I let my guard down and admitted that I hadn't been doing the right things for the past seven months. I managed to ship a buggy, unreliable version of the product. I didn't have any prospective customers waiting for me to push updates and solve their problems.

I wrote a draft of this post and posted it to Indiehackers and Reddit. I got tons of feedback. Some positive, some negative, most of it encouraging. I connected with a few people who shared similar stories. That feedback helped me fully realize that I needed to take a step back. If I'm going to do this entrepreneur thing, I need to do it the right way. I can't build features blind. I need to solve a real problem.

Righting the Ship

I'm taking a break from working on Polished for a few weeks now. I'm going to explore some other ideas. More importantly, I'm going to talk to people first. I'm going to find a problem to solve before writing the code to solve it. I'm going to follow a lot of the bootstrapping advice this time. I'm going to work in public.

If I could go back to November 8, 2019, knowing everything I know now, I would still quit my job. Some say it was too early to leave since I didn't have any prospective customers. If I stuck to that rule, I would have been working a full-time job forever.

The big thing I would change is to start with a customer, not an idea. Everyone in the startup world talks about this. You've got to internalize it. The ego is a master of persuasion. It will guard ideas like a mother bear protecting it's young. Luckily, you can domesticate the bear that is your ego by consistently feeding it healthy thoughts based in reality that come from talking to other people. Be honest with yourself and prioritize people over ideas.

I'd also start as simple as possible. It's fun to think about hard problems and boldly proclaim you're going to solve them. But you should aim to build a first version that will take a week or two to code.

It may be garbage in comparison to your lofty goals. But if other people can use it, they'll help light your path. That path may end up leading to a cave containing hidden treasure. Or it might be a cliff with nowhere to go. Either way, you'll have only spent a week or two and not seven months.

More to Come

If you enjoyed this post and want more, I'd love to connect. I'm starting with a fresh idea and working to validate it before building anything. I'll be writing about the journey and sharing the ups and downs. Follow here by subscribing below, on Twitter, or connect on LinkedIn. My DMs are always open. You can also email me at ryan@ruminant.dev.