I think one important factor to consider, that is not mentioned explicity in the post, is: Manager. Your immediate manager can have a lot of impact on job satisfaction. A good manager would follow a bottom-up approach where he asks the team members what they need (time, equipment, etc.) and would try to get those things so that the team can succeed. This creates an overall higher job satisfaction. An ineffective mana…
It's not just your direct manager that can make your job shitty, it can be anyone on the management chain from your direct supervisor up to the CEO.
A good manager can mitigate the effects of poor management at the higher echelons, but it will still persist, hovering under the surface.