There were three main steps:
1) Phone Screening where someone in the role I was applying for went through my resume and asked me to elaborate on some things, as well as some typical "What is your biggest strength?" and "Describe one project you've worked on." Interview questions.
2) A live-proctored technical skills exam. This, for me, consisted of four parts:
a) Answer as many basic questions in 90 seconds as you can.
b) Here are the rules of a made-up language. Given these rules, how would you do x?
c) Untimed technical skills section, if you know basic coding, you'll be fine here.
d) Leetcode-esque freeresponse questions - four of them. I couldn't answer one of them, I simply didn't know how. It is timed, but you can take as much time as you want. I'm assuming they just prioritize faster candidates. I chose to take about 60 minutes on this section.
3) A final interview that was online via Zoom for me, but I'm pretty sure is ordinarily at Epic's HQ during non-COVID times. You first are ran through Epic's systems by a SoftDev, then given an opportunity to ask questions, then put into a whiteboard case-study, then a final wrap-up with HR. This took about 3 hours. Very casual. If you made it to this point, I wouldn't stress out - just be yourself, be friendly, and ask questions when appropriate.