Applied online and was asked to take personality assessment, ethics assessment, and aptitude test. Aptitude test had 3 parts, pattern matching with letters, pattern matching with shapes, and math problems. I found the math problems to be much harder than the sample problems, but I may have been mentally drained by that point.
Had a Skype interview with a recruiter who asked typical interview questions like tell me about yourself, where do you see yourself in 5 years, etc.
Received a call that they wanted me to come in for a live interview. I first took the same aptitude test that I took online. Then the product manager and the software supervisor came in to interview me. The product manager talked about the company and what they do. They asked about some projects and experience that I had on my resume. The software supervisor then asked some programming questions like how do you declare an object, what do public and private mean, what's the difference between a stack and a queue, etc. He then gave me 3 blocks of C# code and asked about them. First one was about method based vs query based LINQ, second one was about comparing a DateTime object to null, third one was about method delegates.
The next morning, a recruiter contacted me that they wanted to move forward with the drug test and background check. I did the drug test that day, and the following week they offered the job.