Poor project planning and tight deadlines. Opaque leadership (information withholding, dropping hotfix dates with very little heads up). Devs were generally brought into the loop way too late. Due to all this (among other things), projects wouldn't come out ideal at times, and collective stress levels could spike.
Legacy codebase and tech stack, boring domain, boilerplate heavy codebase, highly questionable architecture, time-consuming test procedures, slow build times, lots of major inconveniences, all of which made it hard to stay engaged some days.
Moderate amounts of bureaucracy made getting certain tasks done difficult, especially for projects. "Ask for permission" culture, instead of "ask for forgiveness" culture.
Outdated style of measuring performance (Jira ticket quotas, defect count) which could be gamed. No reward for doing thorough code reviews or peer dev testing. Low culture of engineering excellence overall, Hard to find meaningful mentorship.
Company was at an awkward size, making career growth opportunities very limited.
Pay and benefits package was mediocre at best.