As mentioned above, sometimes working on an older tech stack is frustrating. Our custom tools make this a lot better, though, when maintained.
Work at Epic is generally fairly self-directed. Management controls overall priorities and project lists, but you have a substantial amount of freedom in design and development. If everything's working out OK, this is fantastic and gives you the feeling that you are self-directed. However, there's a couple notable scenarios where this can fail -
Managing this freedom in a way that makes everything work OK is hard. Given this freedom, you need to be able to strongly advocate for your work, plan ahead, and communicate those plans effectively. In some cases this means, for example, telling a manager that they need to choose between cutting scope or pushing out deadlines. It means looking at your workload of ~6 distinct things and figuring out which will be done in what order and how to communicate to the stakeholders of those lower-priority projects. You also need to be able to decide when it's time to stop working and go home.
I've seen developers push themselves too hard and quit under deadline pressure, I've seen developers push through trash code because they felt pressure to get it done fast, and I've seen developers cause problems by waiting until a deadline was past to let anyone know about it. Unfortunately, Epic doesn't do a lot to help people learn those skills, which is particularly problematic since they hire so many people fresh out of college.
The second failure scenario is management. By and large, Epic management is quite good, and I think upper management is generally doing a good job. However, sometimes they drop the ball when selecting mid and lower-level management. Some lower-level managers don't know how to manage developers - they ascribe too much value to deadlines and too much value to ticking off a set of requirements. This is exacerbated by the lack of a good process to contest these issues. The current process (escalating to mid to upper management) is bad and requires way too much sticking your neck out.
In most cases, Epic is very transparent about its motives, processes, and direction. However, in any scenario involving employee benefits or pay, they get really opaque. Pay is of course hidden, and you're actively discouraged from discussing salary with your coworkers. Raises are determined by having various managers get in a room together and rank people on a scale. These ranks get fed into some mystical HR algorithm that spits out a raise on the other side. Managers are not allowed to tell you what your rank is (though they are supposed to tell you, in more vague terms, whether they think you're doing well or not). Bonuses are determined through similarly opaque means.