Hi, I made an account just to respond to your essay. Congrats, you made me get out my laptop ;)
- Feedback is hard to come by.
I don't know your company, but I've known several managers over the years who are excellent people, fantastic engineers in their own right, and decent at organizing projects... but they have no idea how to give constructive feedback. Sometimes this is a personality defect - software isn't known for attracting folks with high EQ - and also it's easier to not risk pissing people off. Sometimes they're guilty of apathy or oversubscription. I think you need a mentor, someone senior who will actually provide this feedback, and ideally who has visibility into the work you and your team perform. They will certainly have insight and perspective. I didn't realize how valuable this was until I started with my current manager, who gives excellent feedback, and I can't thank her enough for it.
- Work expands to fill the time allotted, but work also shifts to the person most willing.
If you're pulling those kinds of hours and your team is not, then hey congrats, you're the kid in school who does all the work in group projects... so, presuming you're not okay with being that person... "Why would I promote you when you're carrying the team on your back?"
- "How tall you are depends on who you're standing next to."
It's sadly common for a dev to have ten years' experience and not hold a candle to another with two years' experience. It depends on what they did in those years! Folks who aren't still hungry to learn, while still competent, cease to grow. So for evaluating your peers, do respect their years of seniority, but take it with a grain of salt that those years were well spent.
- "One must imagine Sisyphus happy."
Camus said that, and while depressing, the quote sums up most of software development in a nutshell to me. You have to value the process - which it sounds like you do - but with the knowledge that your efforts will never make the problems go away. At best there will be new problems. At worst you'll be hamstrung by the situation around you, which leads to the next paragraph...
- "Every group of friends has That Guy. If yours doesn't, then congrats: YOU are That Guy."
No matter the context, don't be That Guy. If your senior engineers are so amazing, you wouldn't be asking these questions: it would be painfully obvious to you that you can learn a ton from their experience and example. That is, unless you're very self-centered and narcissistic, which isn't meant as a dig so much as a "know thyself" moment. About the time that everyone learns from you, but you don't learn from them, and you're not just there for the money/etc... it's time to go.
- Culture comes from the top.
ICs can't change the culture. At least not much, and likely not outside their team. It's just not how big orgs work. This should be part of the reason directors and VPs are so well compensated: it's on them to set the tone, establish the expectations, and conduct the hiring to enforce those. I personally know five ICs, off the top of my head, who all tried to change the culture, were unsuccessful, burned out, and quit. Find the serenity to accept that from your perspective the culture is immutable, and either accept it or change gigs.
- Yeah, final point: It's time to go.
The usual career building advice applies, but I'd also focus on meetup groups. Everyone at a Golang meetup group, for instance, likes Go so much that they sacrifice personal time to hang with others who feel the same.
Feel free to reply if you'd like any further clarity. Good luck!