I first went through a 20-minute phone screen interview with a current software developer at Epic. It was informative and easy enough. The next stage was a 30-minute personality test that was challenging, but far from difficult.
After that, I had to take a 2-3 hour programming test proctored live from some outsourced Indian call center. You are required to show photo ID. The test had three sections. There was no time limit on sections 2 and 3, but I think the faster and more accurately you complete it, the better. The first section was a rapid 2-minute math/reasoning test with 15 questions or so. There were basic arithmetic word problems and image classification questions.
The second section was made up of 20 questions that introduced an obscure language called 'MIIS'. The rules of the language are nonsense compared to standard programming languages today like Java, Javascript and C++. I recommend reading up on it well before you take the test. The first 5 and last 5 questions were the easiest; while the middle 10 were the hardest. Section 2 took me 40 or so minutes.
Finally, the third section contained 4 leetcode problems with a choice of languages for each one: C#, C++, Java, Python, Javascript, Visual Basic, VB.NET, and maybe one other language that I forgot. This section is supposed to take the longest. The problems were on the difficult side, but not the hardest I've seen.
I spent 1.5 hours on the test until I needed to use the restroom in the middle of section 3. At the beginning of the test, I thought that I was allowed to take a bathroom break at any point. However, the proctor informed me that breaks were only permitted between sections, and that I had to stay and complete the test. I decided that wetting myself and my chair wasn't an option, so I immediately submitted the test with 2 incomplete questions. I expect to get rejected.
Beware: after you finish section 2, please ask to use the bathroom. You CANNOT take a break in the middle of any section. The rules were not clear.