> Find some specialization/niche you're interested in software wise, and start learning + building in public about it.
This is a very different and mostly non-overlapping skillset compared to focused product engineering at a company. I believe it's a good way to get you there if you have the time and drive to develop those skills. But then if you do are you going to be satisfied with the prize being a job where you don't use them?
I'm not discounting this as effective, I just don't think it can work for very many people for several different reasons.
Find some specialization/niche you're interested in software wise, and start learning + building in public about it.
Engage with the community of said niche.
After several years of this, you should be fairly well known and have a blog/GitHub with content that suggests you're not entirely inept
Then use your network to get a job in said niche