When should a developer start marketing their product?
Short answer
Before it is finished. The strongest signal you can get is whether anyone will give you an email address for a product that does not exist yet, and that costs a weekend to test. Building for six months and then thinking about distribution is the single most common way indie projects fail.
The longer version
Before it is finished, and ideally before it is started. This sounds like advice about hustle and it is not — it is about the cost of being wrong. Six months of building followed by a launch means you find out whether anyone wants it after you have spent the six months. A landing page that describes the product and asks for an email finds out the same thing in a weekend.
The objection is always that people cannot judge something that does not exist yet. That is half true. They cannot tell you whether they will pay, or whether they will still care in a year. They can absolutely tell you whether the problem you are describing is one they recognise, and whether your description of the solution makes them want to know more. That is most of the risk, and it is testable now.
In practice the useful version is small: one page, a clear sentence about the problem, an email field. If nobody signs up, you have learned something that would have cost you half a year to learn the other way. If people do sign up, you start building with an audience already waiting, which is a completely different launch from shouting into an empty room.
The full argument, with the rest of the picture around it:
Why Developers Can't Market Their Products (And What Actually Works)