Zero to one makes this crystal clear. Most startups die because they didnt manage to sell not because they didnt manage to build the product. Secondly there was never a code moat. Code was always cheap. But architecture, distribution, quality control, integration once landed, this is where money is mostly made. Most indie or small companies die because they just pick shitty problems. eg nobody cares about a goddamn notes app, the one on Mac works fine and most people write garbage in their notes like utter trash. So obviously a notes app has little value because the asset it manages has very little value. Not so much if you are building something like document storage for regulated industries. Or compliance software. In these cases, its the business domain expertise which counts. Even when applying for jobs without domain expertise code monkeys never get paid past a threshold. People / entities that command a premium are the ones with domain knowledge.