In a previous team of mine we created mini tech leads, this entailed taking a mid-range developer and making them responsible for a junior. So that means the mini tech lead is the first port of call for the junior when they have problems or questions. Mini tech leads need to perform code reviews with the junior and work hard to iron out early problems. The technical team lead coaches the mini tech lead and reviews the code reviews of the mini tech lead. The responsibility of the team lead has only changed in that they are now coaching a select few on technical leadership. They are still responsible for the technical output of the team. When I did this I often took a code commit of a junior and compared my review against of the mini tech lead. We would debate the differences and both learn from the experience. Now in a new role I am not directly responsible for a specific team but I continue to mentor my mini tech leads.
The benefit of teaching a developer to become a technical lead of one junior is that by giving the responsibility, teaching them how to read and review other people's code, the quality of their own work is improved because they learn to value what is good code and bad code. They learn how to think more critically of their own designs. It is important to focus on what is important in the code, it is not style so much but more the logic design, the cleanliness of the code, the correctness of the code under corner cases and performance considerations. This in turn improves the quality of the mini tech lead’s code by making them think more critically about what decisions they make and the corner cases they need to consider.
For most developers it is a motivational experience to be given the responsibility of being a mini tech lead. I only gave this opportunity to people who I thought were worthy of it. They have a sound technical base and are the ones that have a good attitude to learning and a good attitude to teaching. They do not need to be senior programmers and they know when to come to a senior or to myself when a junior has a problem that they are not sure about.
A side benefit is that many of the basic and even time wasting questions of juniors can be absorbed by these mini tech leads and they are not overwhelmed because they only have one junior under their wing.
Also we can leverage the mini tech leads, who often get a good perspective on their junior colleagues, to help reviewing the performance of the junior developers. We trust the judgement of our mini take leads because it is the developers who we identify as motivated, are great learners and great teachers who we grant this responsibility.
Another benefit is that in a constantly changing work environment where teams change, people move between teams, people leave the organisation, we can take the best mini tech leads who we think are ready and make them into full technical leads. They are a known quantity and less risky than hiring a new developer into the role.