I started my application online. After a few days, I got an e-mail with a link to an online screening test. There were five questions, four of which were technical. There was one probability question, one computer science theory question, one coding question, and one database question. The last question was "Why RapLeaf?" I get the impression that your answer to this question is pretty important, because it was revisited at every step in the interview. The technical questions weren't too challenging, but required a pretty secure knowledge of basic computer science and math.
I get the impression that the online test is pretty important to the entire interview process. It's more than just a filter.
A few days after I took the test, I got an e-mail saying "I passed", and the recruiter set up a phone interview. My interviewer was one of the founders of the company. It definitely seems like a small work environment! The interview was mostly a review of how I answered my questions on the online test. It focused on one especially open-ended question in which an optimization to my answer could be made.
After the first phone interview, I had another phone interview with the VP of engineering. He also touched on my answers to the questions of the online test and asked a few more technical questions, mostly involving probability.
Lastly, I was asked to implement Blackjack in Ruby. I was only given three days to do this (I hadn't used Ruby at all before), and it was at a pretty inconvenient time. Nevertheless, I had a lot of fun doing it. Ruby's a pretty neat language.
In less than 12 hours, I had an e-mail with an unofficial offer.
There aren't any in-person interviews for internships. I'm sure it's different for full time employees.