When he got hired to do boring tech work at the company I worked at, he just freaked everyone out. The questions he asked were too pointed and he would just do things correctly instead of doing what his boss said. Since he was extremely gifted and had offers to work at other (better) firms, threat of job loss didn't mean anything. All his managers basically hated him.
A rockstar developer wouldn't ask questions of their coworkers that would embarrass them; a rockstar developer would phrase questions and concerns in a way that the other people on their team could understand. A rockstar developer wouldn't do something contrary to what their boss said, they would explain why would do something a different way before doing it (or explain why it's better). Now, if coworkers or management are too incompetent for even that, sure, even the best developer would have a bad time.
Part of being a rockstar developer is, in short, knowing how to work with developers who may not be as good as you. I've been there before and while it can be tempting to use that opportunity as a way to establish hierarchy (sadly important if your company stack ranks) by asking technically challenging gotcha questions and showing off how smart you are, it creates a toxic work environment and disrupts other people's work. It's much better to help people grow and not to overwhelm them with technobabble
I haven't worked with his team, but based on my experience with the company, it's possible that there was some of this, and people being so demoralized that they let the incompetent guy with the most standing make stupid decisions and then just do what he says. But they may not have been as bad.
Don't. At least some of us are having a bad time working because of it.
I found programming in my early teenage years, and - excuse me if I sound arrogant - by now, I've already seen or worked with anything even remotely interesting programming-wise that a regular coding dayjob could throw at me. Gluing together CRUDs from random libraries gets boring very quickly. Solving problems in large systems becomes day-to-day drudgery, because you know that there isn't much smarts there either - all those problems are, unavoidably, self-inflicted. As the codebase grows, you spend bigger and bigger fraction of time allocated to a task on routing - figuring out how to transport some information or command from one piece of the system to another, without turning everything into spaghetti or setting it on fire.
The usual things I see cow-orkers excited about is "oh, I'll get to use generics in Java for this, I've never used generics before!", or "this will teach me Framework X, it's surely a powerful tool that will be very useful for me in the future". They didn't get through this phase in high school, so they're full of excitement about work, however bullshit the project is. If you "found your passion early", you don't get that - all that remains is the bullshit project.
The point being, most of the work I've seen in this industry is pretty meaningless, and it's harder to do if you don't have the comfort of being constantly excited by even most trivial insights in programming. People who started late are better off, because the enjoyment they get through learning also helps them show up and do the work they're being paid for. They don't need to spend time on side projects after work just to retain their love for the craft.
But about the time my kids were old enough to no longer need constant, unrelenting supervision (all my kids were born by the time I was 25) I began taking up side projects again, which has largely renewed my love of programming.
So now I put up with the drudgery of the day job so I can go home and work on something I enjoy (I mean really, the day job could be anything at this point - programming just pays better than anything else I could do, and occasionally an interesting problem at work pops up). Which is also why I tend to become extremely resentful if forced to work very much overtime :)