First of all, in order to be a good team lead, you need great technical skills and knowledge. No matter what technical problem arises, you should be able to solve it. You should be really good with all the tools and technologies used in the project.Apart from that, you should be able to take responsibility and make decisions. Team lead is the one that makes final decisions on behalf of the team. When a problem appears, you should take action to solve it. Ignoring it until someone explicitly asks you to handle it is not an option. You are the one who should explicitly ask someone.Communication skills are no less important. You are a bridge between your team and upper management/your customers. You should clearly explain what needs to be done to the former and provide updates about your work to the latter.