The main issue is the lack of long-term projects. Developers often have to switch between short projects lasting 3-4 months with tight deadlines. Under these conditions, speed is more important than quality, which makes it impossible to write good code. Constant project changes hinder development: there's no time to think through architectural solutions and gain experience working on large-scale systems, which prevents the development of design skills and expertise in working with enterprise-level applications.
Additional activities may go unpaid due to the lack of internal corporate grades for receiving bonuses, even though the extra work is performed with proper quality (for example, supporting a new developer on your project, often a junior who requires increased attention).