I summarize here what I expect from Lead Devs:
- A lead knows how to architect solutions. Not just code them.
- A lead talks higher level than programmers/engineers. You don't want to hear code, you want to hear solutions/implications + pros/cons.
- A lead is interested in the interconnections with other systems, and doesn't overlook them.
- A lead has experienced a range of advanced problems (optimization, weirdest bugs, scale)
- A lead is able to recognise and be interested in the problems he hasn't come across yet, and has the will to tackle them asap if they are a priority for business.
- A lead has a quite deep understanding about the full range of solutions available to solve a problem on his platform. And he spends time on this daily, ideally because he's passionate about it (never seen it other way)
- When you ask a lead how to solve a fairly open engineering problem he'll come up with 1) A good range of approaches 2) Pros/Cons for each of them 3) For each pro/con advise based on his experience.
- A lead has confidence when taking a decision on architecture, he investigates the impacts beforehand. If he's wrong he recognises it.
- Ultimately a lead should be able to come up with a plan to help you refactor any mess with the lowest impact possible in the product. Ideally building the new on new refactored structure, and re-factoring the old by bits when maintenance is needed on those sections (low-budget approach..)
A lead will help you spot other good devs, including other platforms leads. From there, hire engineers who follow the Lead!