After I applied online from their website, the HR called me and she was very nice with me. They sent me an email with a questionnaire and another with 3 programming challenges.
The questionnaire included different questions that test your creativity and values.
The programming challenges were related to algorithms. Once I completed a problem, and I sent it back and it took one moth after they contacted me again.
After this, I had an on-site interview in their offices in Chicago. during two days. During this interview, I took a wonderlic exam, logic exam, one values interview, pair programming interview, technical interview, and a group activity.
It was very interesting process and although I thought I would not pass the process, they told me they would extend me an offer!