I am a manager, who also serves as a tech lead, for the record I'm at Microsoft.

My job has a number of facets. One is to help provide mentoring to junior engineers. I have seen entry level engineers who never had any mentoring at all, and they end up stagnating. I have seen, in some cases, the same engineer, moved onto a team with a strong technical lead who believes in a lot of 1 on 1 mentoring, and watched that engineer undergo dramatic growth.

I also know a number of engineers who never got that sort of technical mentoring, and I watched as their career stagnated.

So that is the first part of my job.

Another part is to provide technical direction. I have smart people working for me, problems tend to have more than a single good solution. Put these two facts together and there is, on occasion, some disagreement about how a problem should be solved. At that point I step in and make a decision so that something can be done. Design by consensus does not work. I have seen "democratic" teams spend over two months debating the merits of various solutions that both had about equal, but different, benefits and drawbacks.

At some point, someone just has to make a decision.

I also am responsible for things like enforcing a coding standard (yes it is arbitrary, but I have long term responsibility for the code), reminding developers to write their unit tests, and worrying about our branching structure.

Next up, I am here to be the voice of my team. I represent my team in meetings, presenting the technical aspects of our plan, coordinate our APIs with other teams, and provide technical input to other teams' discussions.

I work with UX, PM, Marketing, and upper management to ensure the product's overall success. When technology adoption decisions need to be made, I am the one going around campus meeting with other tech leads to understand what they have to offer. When external companies present respond to an RFP I am the one going over their proposal, emailing them back asking for additional benchmarks or to clarify their measurements.

And finally I am the one that shit rolls to. If my guys make a decision, I am the one that goes in front of management and takes responsibility. No one yells at my developers, no one talks down to them, no one hurls insults at them. If one of my engineers makes a mistake, I am the one who stands up in front of our GM, and the first thing out of my mouth is "it is my team, I take responsibility for this happening."

When things get to hot at a meeting, I'll get a text message requesting my presence. I tell each one of my employees, "I am the one who is getting paid money to be yelled[0] at, if someone is mad, you direct them to me."

I really don't understand how a manager with 50+ reports can manage all of this. The guidelines I've seen is that at more than 7 or 8 reports you just don't have time for anything but the most basic of career management advice help.

Managers are supposed to meet 1:1 with employees for an hour each week, any less than that and things start to feel sort of distant, I know from first hand experience when I don't meet with my manager for several weeks! Combine this with the technical and non-technical roles that managers have to fulfill, and I do not see how 50 DRs could ever work.