In my opinions here are few things, that I think the reason of unhappiness.
Technical Dept or Ugly Code base
Sometime we encounter very ugly codebase, but it gets the job done so well. We just keep on building because starting over is too hard, this process is goes for years and decades.
In the fast moving business race, I have never seen a company or project that re writes completely to match the standard, unless the code is really dead. We all want good work and work on nice things, but this ugly truth is always there.
Hustle And Die Culture
As we write the code, we got tech lead to pressure us to close all the tickets end of the sprint ? Who is being pressured by the engineering manager to ship the product by end of the quarter ? Who is being pressured by the VP to execute on the product strategy? Who is being pressured by the CEO to jack up the revenue. Who is being pressured by the BlackRock or angel investing firms or investors ? Who is being pressured by anonymous.
The machines has to be keep moving but all the pressures release through the boots on the ground software engineers, in the form of unrealistic timeline and expectations.
that being said, The turn over rate among software engineers are high compare to any other profession or industry. we can make more money by switching. But we still may not be happy to working for a corporate dinosaur, where we become nothing more then a cog.
Many companies are bloated with bureaucracy that it become nearly impossible to get anything done. When a programmer go to the meeting to schedule a pre meeting to discuss the agenda for the upcoming meeting, about last week’s meeting , they started to become disillusioned.