I applied online through the company website, and received a response email ~4 business days later saying there was interest. We quickly set up a phone screen, where I had a ~30 minute chat about my background, my interest in the position, and details about Guru. After that chat, the next day I heard back from Guru, and we set up a phone interview with an Engineering Manager. This was again ~30 minutes, but more technical in nature, with a few general Java questions asked. After the technical phone interview, I was given a Java take home test, which I thought was fair in length and able to be completed in a few hours. Finally, after submitting the test, we set up an in person interview consisting of 3 separate interviews - one cultural, one technical, and one with an engineering manager. I got my offer within a day or two after the final interview and happily accepted!