I have a job that is financially viable at a small, good, profitable firm… that has less stellar engineering management (not bad people wise)… and I care deeply about my craft. I’m a child hood coder with also a deep “Protestant Work Ethic.”
I have semi-checked out at work, it’s mentally taxing to know the systems could be better. I also know after 5 years my hard work and going the extra mile” will not be rewarded so I coast with my above-average reviews… but I feel guilt and mental anguish and stress and worry I’ll be found for a fraud (not imposter syndrome way, in a “I could do better and will be punished for not” way)
For some of us it’s a passion not a paycheck. Although the pay is nice.
Hopefully they'll be cured of that one day, perhaps the next performance review cycle will finally rid them of any remaining illusions.
Re: arguing and why not just avoid it:
During my brief (7 year) sojourn at one place that was not-my-company (Google), you end up with a mix of personalities, and it's very hard to convince people who believe there's a Right Way to do things that there is no Right Way, so you just sort of have to muddle through figuring out how to be productive without irritating people, or as an EM, leaving them thinking you're negligent.
Conversely, theoretically, it's hard to convince people who are slopping through and rushing code to slow down. (in practice, this wasn't a problem at Google, but it's worth mentioning for completeness.)
Case study: 6 person team. 1 EM who ended up doing 20% of the code, 1 me who did 60%, 2 who did 10% each, only do things when directly asked, and they couldn't find an excuse to kick the can down the road due to "ambiguity" that was product/design's fault, and then two who, in all seriousness, never contributed code to this year-long project: 1 who wanted OOP-to-the-max InjectedFoobarManagerFactory, another who definitely didn't want anything like that, but didn't really have an alternate proposal, they just loved explaining endlessly and authoritatively why anything else brought up was bad.
(what did they do if they weren't contributing? the first would write vaguely productive "experiments" for other teams, that obviously wouldn't ship, in the code repo they were used to. took them 18-24 months to make their first code contribution to our actual code repo, the other wandered off to some other random project in the org. EM was new and out 3/4 of the project for new child leave)
All the firing BS in from mid-2022 in this industry was poorly motivated, and a lot of the initial wave was used for settling political scores, and there's a lot still there. But I hope in the long run it engenders a stronger sense of needing to have some sort of shared reality and responsibility.
But where I work now, the biggest egos are easily the people around the SWEs - especially architects and product owners. Is that not the case where you work?
I worked with a guy who claimed they'd worked at Google (probably not you, fwiw). They were SO SURE there WAS ONE TRUE WAY, and I'm 90% sure the actual definition was "whatever way this guy [me] wants to do it is not the TRUE WAY."
I almost quit dealing with that guy, but I ended up wandering to some other random project in the org.
Dude was whack though. I'll never forget when we hired a guy and he was saying "if the hiring team thinks he's good enough, he's clearly not because they hired this guy [pointing at me]." Fuck that guy.
I might not be the best coder in any room, but I'm a pretty solid engineer.
You can have a fulfilling life out of work. It doesn't mean that you have to be miserable at work, but it's also important to realize that "being productive" is not the only way to live.
Those who make a fortune with software generally don't work on improving society; on the contrary they generally are bigger contributors to the problem. Whether they realize it and accept it in exchange for the cash or actually think they deserve that kind of money is a different question.
it's all meetings, design docs, fighting in PR comments, agile ceremonies, etc etc
building things / fixing bugs is maybe 10% of the work
Like, I have no problem with someone who is in the ticket flow, is conscientious about their work, tries to understand the business purpose, anticipates and asks some unanswered questions, and takes care to truly finish the work. Then, you know, sure, work your eight (or six), take your breaks, and leave it out of your brain all other times.
But the other style is all-too-common: Do only what's listed in the ticket, and the laziest possible interpretation at that. If something is undefined, well, that's their problem, if they realize it, they can schedule another ticket. Don't ask questions, don't collaborate, don't do anything extra and then if pressed, say phrases like, "Well they didn't say.." or "well, they didn't ask..." Take no ownership.
Those people suck.
I'm not quite at the level you've described, but I certainly have elements of it. I've been in the same role for ~10 years and have pretty much maxed out the expected raises/promotions of the role. It's not as satisfying as something brand new, but my pay to effort ratio is pretty ideal and I can work on side projects and learn new things on my own.