I came across the company the first time that I saw it on the recruiter's website. Research into the company showed some exciting opportunities. So I applied via the same recruiter.
Within a week I was called in for a face-to-face interview & programming test. I researched the company's products and their business model in depth to get a good insight and to prepare strong questions. The interview was with a senior developer whose time I'd be joining. It started off with a short background of the company and their products (which was useless as I already knew all of that). That then moved on to my background. Primarily questions from my CV - especially about things that he didnt understand (arduino, etc). He seemed pretty impressed with my final year project. Did a lot of probing into its inner working - though not from a challenging perspective but more so from an inquisitive/curious perspective which gave me a really good feeling about the interview.
After that I was given an hour long test to complete. The test had 13 mandatory short questions and 1 longer question. The shorter questions started off with the basic ones (convert to hex, bin, etc.) and moved on to difficult ones like heap vs stack, thread vs process, multi user control, the infamous 100 storey building 2 bulbs problem, dev lifecycle, "hello world" to "world hello". There was also a question on your fav book and why. And also one of the more interesting questions was swapping two integers without using an assignment operator (binary XORring or algebraic manipulation). The test didn't go too well.
The company and the atmosphere seemed pretty exciting. They are doing some cutting edge work and there is a good opportunity to be involved in that from day one as its a small team. It has strong ties with MS and Apple. I found it to be a really good company to work for.