Some feedback that nobody ever seems to give developers is that your software idea probably isn't very good. Most of the time it's not only "not very good" it downright sucks.

Your groundbreaking weather app, new social media platform, or personal portfolio site is generic and boring. There are thousands of other tools that solve the problems you are attempting to solve in more creative, efficient, and useful ways.

Why are you building these things and who are you trying to impress? Does anyone wake up in the morning passionate and invigorated to build another spreadsheet editor? Why would you spend your precious time solving such a boring problem?

If you don't have a convincing "why" for the problems you're building to solve you might succeed and you might even earn a lot of money, but you'll never be great.

Your why might not be my why but if you embrace your why and risk being a little weird or even controversial, others with the same why will find you. You won't even have to search for them. It's some kind of invisible why-magnetism that brings people that are misshapen in similar ways together.

It starts with you alone though. Take a hard, objective look at the things you've built lately. Don't ask yourself "Would someone use this?", that question is for casuals. Ask yourself (honestly), "Am I using this regularly?"

Hypothetical other users don't count, only real ones. Pride has clouded the judgment of modern engineers. This pride has obfuscated the obvious yet hard-to-look-at truth: before you scale to millions you must scale to one.