Many software projects are too large for a single developer to complete in a reasonable amount of time. The team leader is a developer who guides the programmers into getting the job done.

A team leader is not a project manager (although the team leader could also be one). This is the modern version of a chief programmer who runs a team of developers in a fashion similar to how a surgeon runs the staff in an operating room.