This is going to sound controversial. I believe that engineering is too hard a problem for a single person to lead. To that end, engineering teams should have two leaders, a team lead and an architect.
The team lead focuses on feature delivery and time to market. The team lead works with the product and project managers and the developers to arrive at an acceptable delivery schedule.
The architect focuses on software quality. The architect works with quality engineering and the developers to assure that the value of the software assets are maintained at a high level. In order to reduce the likelihood of introducing new bugs with every change, software should be easy to read and reason about. To that end, architects focus on managing complexity. Architect activities include choice of technology stack, design reviews, code reviews, and mentoring.