Choosing a Tech Stack: 10 Important Factors to Consider