I submitted an application on Duo Security's website. It took them a week or two to get back to me. Their recruiter (Courtney) was competent, responsive, and pleasant to communicate with. The recruiter set up a phone chat to tell me about the company, ask questions, and get to know me a little bit. I got a technical phone screen about a week later. It was technically-oriented but I don't think it was meant to be terribly challenging; it felt like its purpose was to rule out candidates who simply can't code. Perhaps 2 weeks later I got an on-site interview. The on-site interview had three parts: a chat with some recruiters at the beginning, a technical interview, and an experience/teamwork interview. The technical interview was more difficult, but still not very hard. It felt awkward; the person who conducted it did not talk very much. I stumbled with one of the questions because I tried to jump straight to the in-place solution of least time complexity, and I tripped up. Don't do what I did; I don't think it was apparent to my interviewer that I knew how to solve the problem and was working toward a solution. Try to solve the problem with bad time or space complexity first so they know you've got a brain. The next interview asked a lot of questions about my history of working with teams. It was pretty good. Lots of deep, open-ended questions. I did not receive an offer, but I did get helpful and (AFAIK) honest feedback: I was a great cultural fit and had a strong technical foundation but lacked the experience needed to fit in to one of their teams. I think it was a good experience overall, but I felt pretty frustrated after the technical interview because of my mistake. I'm not going to list any of the technical questions, but it's safe to say you would find them or similar questions just about anywhere you look.