I applied online, and was called for a phone interview within minutes of submitting my resume. They had me come in for an in-person interview which included a simple code challenge. They said they liked me, and every indication was that I could expect a job offer within a few days. Then I didn't hear anything back from them, even after I sent a follow-up email. I assumed they had decided to hire someone else, which was particularly frustrating because the interview indicated the exact opposite. Three weeks later, I got a call from them again. Apparently something interrupted and delayed their hiring process, and I was still a top candidate. I came in for a second interview - really more of an audition - in which I did actual work on their app alongside one of their developers, for two hours. I had fun, and my teammate said that my work was actually helpful, and that I had done better than "the other guy". They told me they would call later that day to let me know. Again they didn't get back to me on time. They called me the following Monday to let me know that I did not get the job, and that is was a very close call; that if they have another position open up soon that they'd contact me to see if I'm still available. They sent me a $50 Visa gift card to compensate me for the work I did during the 2nd interview. The interviews themselves were really good, but because they failed to follow up after interviews in a timely manner - even to say "Hey, this is taking longer than we planned, sorry" - they left me with a bad taste in my mouth. The fact that they had two candidates that were clearly a cut above the crowd, but only hired one, is a shame - finding good programmers is hard.