- 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:
-- parental leave is paltry
-- no work from home outside of extraordinary circumstances, and even that varies by team / team lead
- 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.