I applied through a web site that caters to job applications. The process took a few days. They started with a diagnostic exam composed of three parts. The first part involves reasoning, vocabulary and an IQ test part. The second part of the exam is more comprehensive with 5 to 6 sub-parts pertaining to abstract reasoning, vocabulary, flowcharting and process flow, arithmetic ability and problem solving ability. The third part of the exam is the computer programmer exam, where it is composed of different questions regarding conversion of radices, software engineering and OOP. You will also be asked to create an algorithm for a certain basic problem (Such as reversing a string without using a temporary array). Ironically, the easiest for me was the third part of the exam and a fresh graduate can easily answer it, while the first two parts, for me was unnecessary and pointless.