For almost three years, I worked as a full-stack developer building ERP systems and e-commerce platforms for clients. The pay was decent, I was learning a lot, and my stack — React, Next.js, Node.js, PostgreSQL — kept me on the cutting edge of web development. By any reasonable measure, things were going well.
But every evening, after closing my IDE from the day job, I would open it again to work on my own ideas. Side projects. MVPs that never launched. A todo app that turned into a project management tool that turned into an abandoned repo. I had the skills to build real products, but I was spending all my energy building someone else's vision.
The turning point came in mid-2025 when I shipped a small internal tool for a client — an inventory management module — and realized I had built something genuinely useful in about three weeks. The client was thrilled. And all I could think was: What if I built something like this for myself?
I didn't quit dramatically. There was no Jerry Maguire moment. I saved up about eight months of living expenses, told my employer I was leaving, and gave them a proper handoff period. Living in Algeria helps here — the cost of living is significantly lower than in Europe or North America, which gave me a longer runway than most indie founders get.
My plan was simple: build a SaaS product, launch it within three months, and iterate based on real user feedback. I had a few ideas in the ERP space since I knew the domain well. I figured my experience building these systems for clients meant I understood the problems deeply enough to build a product around them.
That plan, of course, did not survive contact with reality.
The first month was incredible. I woke up excited every day. No standups, no Jira tickets, no context-switching between three different client projects. I could focus on one thing and build it properly.
I set up my stack — Next.js for the frontend, Node.js with Express for the API, PostgreSQL for the database — and started building. I was moving fast. Features were shipping daily. My commit history looked beautiful.
Here's what I didn't realize: I was building features nobody had asked for. I was solving problems I assumed existed because I had seen them in client work. But assumptions are not validation.
By month two, I had a working product with no users. I had spent weeks perfecting the UI, writing clean code, setting up a CI/CD pipeline — all the things that make engineers feel productive but don't actually move the needle on product-market fit.
I forced myself to stop coding and start talking to people. I reached out to small business owners in Algeria and across North Africa. I did about thirty calls in two weeks. What I learned was humbling:
- The features I thought were critical were mostly irrelevant to actual users
- The pricing model I had in mind was completely wrong for the market
- People cared far more about simplicity than about the technical sophistication I was building
This was the hardest lesson. As engineers, we optimize for elegance and completeness. Users optimize for "does this solve my problem in under five minutes."
I threw away about sixty percent of what I had built and started over with a much smaller scope. Instead of a full ERP suite, I focused on a single module — inventory management with invoicing — and made it dead simple.
This time, I built with users in the loop. Every feature went through a quick feedback cycle. I would ship something on Monday, get feedback by Wednesday, and iterate by Friday. The product was uglier than my original vision, but people were actually using it.
Let me be honest about money, because most founder stories skip this part. During the first six months, I made exactly zero revenue from my SaaS. I survived on savings and occasional freelance work — maybe ten hours a week of React consulting to keep the lights on.
This is the part nobody warns you about. The psychological weight of watching your savings decrease while your product hasn't generated a single dollar is brutal. There were weeks where I questioned everything.
I started getting my first paying users around month five. Small amounts — nothing life-changing. But that first payment notification is something I will never forget. Someone valued what I built enough to pay for it. That validation was worth more than the money itself.
Shipping beats perfection. My first launched version had TypeScript errors I would have been embarrassed about at my old job. It didn't matter. Users don't read your type definitions.
Distribution is harder than building. I can build a full-stack application in my sleep. Getting people to try it? That's a completely different skill set. I had to learn content marketing, cold outreach, SEO, and community building — none of which they teach you in a JavaScript bootcamp.
Loneliness is real. Going from a team environment to working alone from my apartment in Algeria was a bigger adjustment than I expected. I joined online communities for indie founders, which helped, but it's not the same as having colleagues.
Your technical skills are necessary but not sufficient. Knowing React and PostgreSQL got me maybe thirty percent of the way. The other seventy percent was product sense, marketing, customer support, accounting, and sheer persistence.
If you're a developer thinking about quitting to build a SaaS, here's my honest take:
Do it, but not the way you think. Don't quit and then figure out what to build. Validate your idea while you still have a salary. Talk to potential users. Pre-sell if you can. The best time to take risks is when you have a safety net.
Save more than you think you need. I saved eight months of expenses and it was barely enough. Aim for twelve if you can. The last thing you want is financial pressure forcing you to abandon a product that just needs two more months.
Build in public. Share your progress on Twitter, LinkedIn, wherever your audience hangs out. I started writing about my journey and it became one of my best acquisition channels. Developers trust other developers who show their work.
Pick a boring problem. The sexiest SaaS ideas usually have the most competition. I found my niche in a boring corner of business software that most developers don't want to touch. Less competition, more desperate customers.
Don't romanticize it. Indie hacking Twitter makes it look glamorous. It's mostly sitting alone, debugging production issues at midnight, and refreshing your Stripe dashboard hoping for another signup. It's deeply rewarding, but it's not glamorous.
A year into this journey, I'm not rich. I'm not posting revenue screenshots on Twitter. But I'm building something real, I own my time, and I'm learning at a rate that no job could match. My product is growing slowly but steadily, and I'm starting to see the compounding effects of consistent effort.
Would I do it again? Absolutely. But I would do it differently — more validation upfront, less time on perfect code, and a much stronger focus on distribution from day one.
The best code in the world doesn't matter if nobody sees it. Ship it, learn from it, and keep going.
