Work sucks. Unless you're a shot caller you're destined to be ground down to the bone via attrition. Work politics, non-sense meetings, code you have no passion for. Developers are still cost centers to be minimized. Professional code is rarely important, meaningful, or enlightening. Neither are the people you work with. Promotions rarely pay commensurate to the responsibility.<p>The trick is to stop caring so damn much. Your job doesn't need you no matter how good you are. There's 100,000 developers in another country ready to be contracted out to take your place once it becomes fiscally responsible for the company to do so. Keep this in mind at all times while at work. You are replaceable no matter what superlatives they assign to you. In fact, superlatives, 360 reviews, etc are all just carrots dangled in front of you to get you to take more on-call shifts, push yourself harder, skip holidays and meals, etc. They may not overtly indicate this but regardless of how "good" a company is these are fundamental. Paretos principle. 20% of the developers (the morons) do 80% of the work. Don't strive to be the 20%.<p>The solution? IMO, find some hobbies. Use 'em as excuses to never do extra. The ole "sorry I'm busy with <important thing>" trick. Dedicate the least amount of brain power to work that you can get away with. I often check out mentally for several hours at work. It's probably some kind of survival mechanism but I don't really hate showing up, coasting, and collecting a paycheck. My work still gets done and occasionally I'll even "take one for the team" to get a couple extra positive reviews. Gives me more energy to spend on things I like. It's honestly not my job. I do this at every job. In general, I am far happier not killing myself so the CEO can buy another ferrari. Let the bright eyed new grads learn the hard way.