I was contacted by a company recruiter via LinkedIn. After talking with the recruiter, the first stages of the process involved a personality test online and a screening test over the phone.
I was later flown out to Madison and put up in a hotel downtown. I, along with several other interviewees, were split into groups led by a current employee who showed us around Madison, and we had an opportunity to ask questions in an informal setting.
The next day, we went to Epic's campus. There, we were split into groups based on which position we were interviewing for and given a tour of the campus, as well as a few demos of some of the projects they were working on. Later, in our groups, we met with a current developer who described the experience working at Epic as a software developer as well as information about the work (e.g. language, libraries, tools, types of projects, organization of teams, etc). We later each met one-on-one another developer for a technical interview covering our past work, problem solving approach.
After that, we sent to a testing room for 3 different tests which were administered in an environment familiar to anyone that's taken standardized tests. One test covered basic skills (e.g. basic math, communication and writing skills). Another covered general technical questions about software development. The last test introduced, piecemeal, a hypothetical programming language (though seemingly similar to the Caché language they use for many of their projects) and asked questions about expressions/statements written in that language.
Finally after our tests, we wrapped up with a one-on-one meeting with an HR person to discuss our career goals, anticipated salary, feedback about the company, feedback about the interview process, and similar matters.