There's a big difference between a professional developer and a "rockstar programmer"; the latter may safely be assumed to have no sense of elegance, and to utter all sorts of atrocities in the process of building something that barely works as fast as possible and then moving on to the next thing, which is why I've found it quite feasible to make a living cleaning up after them. I see no reason why you can't do likewise; it's a more sedate professional life, but also a more satisfying one -- your "rockstar programmers" move on quickly because they don't dare to stand still for fear of their mistakes catching up with them, while the guy who solves those problems is always well favored.
Don't be fooled by propagandists of ESR's stripe or by bizarre little hothouses like the Silicon Valley startup scene! What counts in the software industry at large is not whether you call yourself a "rockstar" or a "hacker" or whatever else you like, but instead whether you are a professional with solid engineering chops. Concentrate on developing your professionalism and your professional skills, and you won't go wrong. All else is fashion.
(Don't equate "rockstar programmer" with "hacker", either. The former tend to view the latter as outdated Emacs-using neckbeards with no relevance to the real world; the latter tend to view the former as tiresome, barely competent children who wouldn't know good code or good tooling if they broke their nose on it. Which opinion is accurate, if any, is left as an exercise for the reader..)
Don't be fooled by propagandists of ESR's stripe or by bizarre little hothouses like the Silicon Valley startup scene! What counts in the software industry at large is not whether you call yourself a "rockstar" or a "hacker" or whatever else you like, but instead whether you are a professional with solid engineering chops. Concentrate on developing your professionalism and your professional skills, and you won't go wrong. All else is fashion.
(Don't equate "rockstar programmer" with "hacker", either. The former tend to view the latter as outdated Emacs-using neckbeards with no relevance to the real world; the latter tend to view the former as tiresome, barely competent children who wouldn't know good code or good tooling if they broke their nose on it. Which opinion is accurate, if any, is left as an exercise for the reader..)