When I'm looking for a new project, I analyse these 3 aspects: Client, Domain, Tech Stack. My experience taught me that, I can only handle one unknown aspect among these in a project, more becomes a problem sooner or later.<p>- If the project is for a new client that I have no connection beforehand, I only work on a problem domain that I'm familiar with, and I use a stack that I'm confident in.<p>- If the project is in a domain that I've no experience, but I know the client, I go with the tech stack than I know I can get the job done.<p>- If the project is for a client I know, and I have experience with the problem domain, I let myself to choose a new stack to learn if there is one that's suitable for the project.<p>I'm having great success with this strategy. Obviously these are just general guidelines, and the specifics of the projects can affect my decision, and common sense always applies.