Submitting an application required a lot of educational stats: GPA, SAT/ACT scores, and the like. It's definitely a process geared toward entry-level candidates (though there is still room for experienced hires, and the offer took my experience into account when it came). The phone screening was quick, easy, and straightforward -- seemed to be mostly just a surface check to screen for obvious unsuitability.
On-site interviews: I was expected to drive myself, which took about five hours. Some people get flown in, I'm sure, but I guess I was within the get-here-on-your-own radius. They put me up in a hotel in downtown Madison, very near State Street -- surely aimed at showing off the city in its liveliest and most metropolitan light. It felt like a hefty drive the next morning to get from there to the campus. I had to give myself plenty of time to make sure I got through the city's morning traffic and a bunch of miles.
The day featured a lot of variety. The recruiters spent as much time selling me on Epic as they did evaluating me. We got some all-around pleasant propaganda for the company and the city, plus a quick tour of part of the campus.
But I certainly had work to do. The lengthiest and most challenging element was the battery of written exams, which included a pair of programming skills tests. I was told they'd be graded on accuracy and speed of completion. (The sort of person who enjoys pencil-and-paper puzzles will do very well in this process.)
I found myself in several small-group settings as well, given opportunities to learn about the software, to talk to a developer and ask questions about the job, and to eat lunch with an Epic employee in more of a casual social setting. I later learned that even my small-group lunch was evaluated -- our host was expected to send written comments on each of us back to HR. I suppose it was meant to screen friendliness or personality; I can't imagine what else you could judge from lunch.
I also spent an hour in a 1-on-1 setting with another developer. Probably the most stressful setting of the day, but it wasn't so bad. My interviewer led by lobbing programming problems at me to see how I'd do, and from there we shifted into discussion of specific technical project experience. I'd been told beforehand to come prepared to discuss a development project of interest from my past. The instructions mentioned preparing a visual aid ahead of time, but I'm sure I could have done without it. It was a typical interview; candidates will do well by staying relaxed, demonstrating knowledge and passion, and developing a comfortable rapport with the interviewer.
I'm proud to say I did not not seek the test questions online beforehand, which is of course cheating. But I did study before the on-site day, brushing up on core CS concepts like sorting, recursion, algorithms, vocabulary. I'm sure it helped on the tests and in the 1-on-1 interview. But even if all it does is help to maintain confidence, it's worth the time.
After all that, it's a waiting game. They've just collected a ton of information on a ton of people, and it takes time to process it all. I finally got a call about two weeks after my on-site visit -- it feels interminable while you're waiting, but there's nothing you can do. Once Epic's run all its results through whatever formula they've got, if they like what they see, they'll start contacting references, and then it's not long before Epic calls with their decision. In my case, they called as soon as they got off the phone with my reference.
To anyone about to submit themselves to this process, it's a great place to work. Good luck!