I've been a software engineer for about 15 years and I've worked for a bunch of different companies/startups over that time. Before that I did the whole PhD/researcher thing.Almost every day I have to remind myself that I'm nobody and my opinion doesn't matter.I know that's pretty negative. I do it because I need to make sure that I don't get to emotionally invested in what I am paid to do. The satisfaction I get from engineering is in doing a job well. I'm not motivated by writing something that is used by millions of people or that makes the company tonnes of money. Those are fine, great even, but it's making something that I'm proud of that means the most to me.I care about the code that I write. Sure, you have to pragmatic and not over-engineer for the sake of over-engineering, but that's another design constraint that makes solving the problem interesting. But caring too much can be a problem. It means arguing with other engineers about how something should be done. It touches egos and politics. And that's never worked out well for me.I love collaborating with people. I believe in getting more junior engineers enough slack to make mistakes that they can learn from. But I don't like arguing with people. You know how some people can't really tell a joke? Same words, different effect? That's me for arguing. It's frustrating and I didn't recognize it for a long time. So now I avoid it, just make the changes that are requested by reviewers, put my ego in a box, and keep my thoughts to myself.