I applied online. The process took 4 weeks. I interviewed at Kik (Waterloo, ON) in Mar 2016
Interview
Applied by email for the position, which was a little vague in its description. Later I learned that this was a brand new spot at the company, and that they were expecting quite a bit more experience than what they were letting on.
A phone interview with the recruiter was first, where the position was briefly outlined. I was asked about my experience in the field, which was minor given that I'm fresh out of school, but he didn't seem to mind and moved me forward.
A take-home coding challenge was sent to me by email within the day: two questions on manipulating data in Java, but also creating a query in SQLLite, which I could not have expected from the job description. Either way, I was offered an in-person interview at their head office.
I spoke first with two server devs, who quickly began asking questions about Java's garbage collection mechanism, the scaleability of their application and how familiar I was with Linux and parallelism. Then a programming challenge, where I was asked to describe as many solutions as I could for a given problem, provide complexity analyses, and then write one of the solutions in Python. If you can't find the clever linear time solutions then and there, they probably won't bite.
The interview process was definitely designed for a potential server developer. Not what it seemed, and I guess it made sense that I didn't get it.
Interview questions [1]
Question 1
In-person: Given an array with values from 1 to 100 entered twice, we've removed one of these values so that there are 199 left. How do you determine which value was removed.