Pros
1) For many years company served as a reliable channel for software engineers who wished to evacuate from low level countries to high level countries even if they are not world famous developers, but just good and dedicated. Unfortunately, this feature became more limited recently, not because of the company, but because of global hiring situation. 2) Very good benefits package. 3) Good work-life balance. May depend on project of course, but overall, it's pretty chill. 4) Good job security. In order to be terminated you really need to act like you are begging for that. And even if there are external reasons for potential layoff, they will always offer reasonable options. 5) Flexibility, you can change project from time to time, if you want.
Cons
1) Salary is noticeably below average. But, hey, they are helping you to relocate to much better place and take care of all paperwork. It's still SWE salary you can make living with that. And even if you are lucky enough to be born with US passport EPAM still can be a good choice at early steps in career. 2) Mostly it's outstaffing company, so highly likely you will do projects for other companies. But other companies unlikely will outsource something super critical or interesting that they are working on themselves. So, you will be pretty much just a service worker which means that you are easily replaceable. EPAM itself, of course, will never treat you that way, but just keep in mind that such work unlikely boost your career or make you outstanding or irreplaceable in IT world. Consider EPAM as a transition/stepping stone company or relocation/evacuation company. You'll probably also feel okay here if you are not super competitive and career oriented and just want calm simple life. If you keep your expectations aligned, it's probably the best place to choose.