+1 this sentiment.
I'm currently working in a large monolith-based environment and I've never seen a tragedy of the commons effect degenerate an environment to a larger degree. Poorly considered features and changes, horribly written and slow tests, bad modularity, and a total inconsideration for the long term sustainability of the codebase are all par for the course. Good CI configuration, Linters, and lots of RuboCop rules help a little, but only go so far as they can't pick out code that's "only" subjectively bad.
The basic problem is a total lack of any individual responsibility. Just like how you'll have a minimal effect if you only throw one plastic bottle into the ocean, introducing poor code quality code into the large repository isn't really your problem, it's everybody's problem, and nothing you can do will ever move the needle in one direction by very much.
Going too far the other way into microservices is probably also bad, but given a choice between a company with a monolith and a company practicing microservices in moderation, I'd go with the latter everytime.