Mostly because teams become more specialized as company sizes grow. While in an early stage startup you might have "the ops guy" who runs all the infrastructure, within LinkedIn there's a team that runs Kafka, a team that runs database operations, a team that runs Voldemort, a team that runs Pinot, a team that runs Hadoop, a team that runs the ads platform, a team for the feed, a team for messaging, a team for search and so on. Even if most teams are rather small (eg. two pizza rule), with many teams it eventually adds up.
Furthermore, as you point out, the more teams you have, the more overhead there is in cross-team collaboration, which means that engineering output is sub-linear with the number of engineers due to having more meetings. It's not really about talent, but mostly about having to spend more time coordinating. For example, in a small company, say that you want to create a new feature, then you just do it and check with one or two other people if need be. In a larger company, you might need to have meetings with other teams to deal with provisioning hardware resources, security review, data schema review, compliance with privacy regulations, code reviews, etc.
It's a very different thing from coding by yourself or in a small team/company.
Furthermore, as you point out, the more teams you have, the more overhead there is in cross-team collaboration, which means that engineering output is sub-linear with the number of engineers due to having more meetings. It's not really about talent, but mostly about having to spend more time coordinating. For example, in a small company, say that you want to create a new feature, then you just do it and check with one or two other people if need be. In a larger company, you might need to have meetings with other teams to deal with provisioning hardware resources, security review, data schema review, compliance with privacy regulations, code reviews, etc.
It's a very different thing from coding by yourself or in a small team/company.