Overall, I've been very happy working at Epic this time around. Luckily, my manager (team lead) was very competent, understanding that I have a life outside of the job, and showed an interest in my professional growth.
Inconsistent quality of management. Epic affords a lot of leeway to team leads regarding how their teams are run, which is often fantastic, giving leaders the flexibility they need to succeed. However, like any other office, there are pockets of mediocre or even hostile management that survive due to this flexibility. It's hard to fully recommend working here when so much of your happiness is based on a chance assignment.
Culture. The CEO of the company is a workaholic and expects you to be one too. The term "work-life integration" gets thrown around enough. You can avoid this by guarding your time and standing up for yourself (my average was <45hr/week), but don't expect anyone to do this for you. And you might not have a team lead open to it, making your life hell. This is easier to do in the software developer role, but I could see it being difficult/impossible in others.
Culture. While management often sends out items to the tune of "hey, we realize you developers are socially stunted, here's how you handle normal professional situations," I think they're a bit too tolerant of toxic personalities as long as the person isn't explicitly harassing someone.
Salary opaqueness. The CEO has repeatedly discouraged employees from sharing salaries with one another, clearly trying to forbid it and also not get burned for illegally forbidding it. They also share no data about salary distributions by role, and the raise/bonus process is a smoke-and-mirrors production that is correlated with, but not clearly tied to, your performance reviews.
Overbearing level of time tracking. Epic requires you to log all of your time in 15-minute increments for project planning and staffing purposes, and team leads do actually sift through your logs to make sure they're up to the proper level of detail.
Some benefits are lagging behind other tech companies:
Back-end tech. Cache is a fascinating language from a historical perspective, but just doesn't hold a candle to modern ones. To be fair, Epic is working on that by doing some TypeScript->Cache transpiling, but I haven't had a chance to use it yet. Even aside from this, the homegrown database built on top of Cache is pretty scary: it's up to the developer to ensure indexes are updated every time data is added or removed, and you can shove pretty much any data type anywhere without it complaining until you try to get it out.
Staff meeting. It often drags on, with slow, semi-relevant content and painfully drawn-out "geeky" puns.
Don't tolerate mediocre (or worse) social skills in team leads. If someone doesn't have the social skills to lead, then you shouldn't foist their social incompetence upon unsuspecting team members.
Consider increasing the granularity of time logging to 30 minutes. You'll still get most of the planning benefit while reducing the burden on employees.
We shouldn't need an immersion trip to notice deeply broken workflows at customer sites. There's a disconnect between IS/TS and Devs right now that leads to issues not getting communicated until the customer is so ingrained in their behavior that it's near impossible to change.
Consider being more open regarding compensation. You don't have to tell everyone what their coworkers make, but releasing 25th/50th/75th salary percentiles by role+tenure would be a useful addition to the other performance feedback given to employees.
I had to take a lot of tests and had a phone interview where I talked about my past projects. The tests were hours long and took a long time.
30-minute phone screen, then an OA around 4 hours long. The OA had mental math, but also a few LeetCode-type problems. They were not very difficult if you studied common patterns and implementation.
One single virtual interview after a multihour OA. The interview was 4 hours long, but only ~2 hours was actual interview stuff. The rest was two presentations from different people about life at Epic. The 2 hours of interview included a case study,
I had to take a lot of tests and had a phone interview where I talked about my past projects. The tests were hours long and took a long time.
30-minute phone screen, then an OA around 4 hours long. The OA had mental math, but also a few LeetCode-type problems. They were not very difficult if you studied common patterns and implementation.
One single virtual interview after a multihour OA. The interview was 4 hours long, but only ~2 hours was actual interview stuff. The rest was two presentations from different people about life at Epic. The 2 hours of interview included a case study,