I applied online and was contacted via email by a recruiter the very next day to set up a 30-minute phone screening with him. I did the phone screening with the recruiter two days later and it was very easy and straight forward. He gave me info on the job and asked me simple questions, such as how I feel about working on a team and what salary I would want. After the phone screening was over, the recruiter called me back a few hours later to schedule a second 30-minute phone screening (this time with two people: Mercury Systems's Expert Systems Architect Engineer and Principle Software Engineer). I did the second phone screening four days later and it was also pretty straight forward. I mainly discussed my project and programming experience (wasn't asked any technical questions). I was asked questions relating to what programs I'm most comfortable using, my experience programming with GUI, my experience using Linux, whether I enjoyed working on front-end or back-end stuff more, and challenges that I overcame during the process of completing projects (both on and not on my resume).
Exactly one week later, the recruiter from before called me to schedule an on-site interview (the last stage of the interview process). The onsite interview was held the following week (8 days later) in a nice conference room with comfortable office chairs where two 30-minute interview sessions were conducted. For the first 30-minute session, I got to meet the same two people that I had spoken with during the second phone screening. I did well on questions that involved talking about past projects, such as how I was asked to describe a project outside of school that I worked on where I had to learn a new skill and did so successfully. I started to falter when asked more technical questions, specifically relating to data structures since I was rusty in that field. The session ended with a white board question where I had to write a C++ program that takes an array where every integer occurs twice except one integer and outputs that one non-repeated integer. I tried using a for loop but was unable to figure out how to properly utilize it (partly due to myself being nervous). They tried giving me hints to solve it telling me to use a stack, but as I said before, I was rusty with data structures, so I ended up not making much progress. I eventually had to give up in order to move on to a second 30-minute interview session with two new people (a Principle Software Engineer and a Software Engineer I). This second session went much better than the first session partly due to most of the technical questions relating to object-oriented programming (such as how I was asked to define polymorphism, virtual functions, and abstract classes), which I was more experienced in using. This second session also ended with a white board question, except I was able to easily solve this one; I was asked to write a C++ program that reverses a string. The end of this second session concluded the on-site interview. Three days later, I unfortunately received my rejection email from Mercury Systems.
Pretty fast and efficient interview process overall. I wish during the onsite interview I had done a better job at answering the data structure technical questions and first white board question because I believe that ended up making the difference in me not being hired.