The process began with a phone interview for the company to gauge who you are. If they decide they want to let you move forward, they will ask you to take an online assessment, which consists of math, verbal reasoning, and programming. For the programming part, an introductory programming class should be sufficient. They basically make up some language, describe how it works in the problem, and then see if you can work from there.
If you can get through all that, they will fly you into their headquarters in Madison, WI for an on-site interview. Great experience. They will put you in your own room at a nice hotel, and reimburse you for transportation and meals [on their way there, while you are there, and on your way home] - great deal. You fly in the night before your interview, and an Epic employee will take you and a few other candidates out to dinner that night in downtown Madison. On interview day, they will give you an overview of Epic itself as well as the position, give you a tour of the facilities (which is sort of like a playground), let you have free lunch at their cafeteria (as an employee you would get great quality food for a fairly low price), do a one-on-one "case study" with you (ask you a few "what would you do if..." scenario questions), and do a one-on-one HR interview. The "case study" and HR interview are behavioral and not as much technical. Selected applicants will go through a programming assessment - this one is MUCH HARDER than the one you did after the phone interview, and I am not sure how they decide who does and who does not take this. If they have you take the programming assessment, they bring you into a private room with a computer and give you four problems. You will be asked to code according to the specs in any language you feel most comfortable with, with pseudo code being fine if need be. There is no compiler for you to check with.
If you took the programming assessment, you could leave the interview feeling that you really bombed it and that it will probably make the difference between getting an offer versus not getting one, but I think it is not meant for you to do perfect on. They probably just wanted to gauge where you are, and be able to make a judgement regarding whether or not they will be able to successfully train you when you start. However, beware of assuming that just because you got invited to interview on-site that you are guaranteed an offer as long as you don't screw up. While I received an offer, I do know people who did not after making it to this stage. You should expect to hear from them roughly two weeks after your interview - your recruiter will contact you with the decision via phone and if you do receive an offer, you have two weeks to decide. I declined the offer for now because I wanted to have a number of options in front of me before I could make an informed decision, but my recruiter was open to allowing me to re-inquire at a later date should I decide to follow through with working at Epic.