And don't get started on how 'agile' fuels this! In a constant panic mode, there's only ever sprints for small fixes and isolated features. Never time to address what's really wrong in a systematic way. So the flames burn higher...
The current hiring preferences out there are a perfect fit for the industry’s insane “ship crap as fast as possible” product preferences.
The result has worked out really well. Managers have quit hassling me about time and I get given the more complex and interesting work. People know I work hard and care about what I produce, if they have to wait they have to wait. I don't ask permission to write the tests I want, or spend a couple of days refactoring if that needs done.
Basically I am the professional coder, not the project managers, so I don't let them dictate how the software gets made. You just need to make sure you don't take it too far and too gratuitous refactoring work. Your reputation is critical for this approach to work.