I interviewed for a L2 (equivalent of SDE 2) position at Stripe. I signed an NDA and cannot share the exact questions. The questions were very large (50-100 lines), so you need to be skilled enough to understand the meaning of the question quickly.
Round 1 (Screening - 45 mins): This was a multipart question around String manipulation and simple algorithms. New parts kept coming as I finished the previous ones. I completed 4 parts. They focused more on code readability, design, modularity, and unit tests than algorithmic complexity. Verdict: Very Strong Hire (Moved to Onsite)
Round 2 (Coding - 40 mins): Similar to the screening round, this was a multipart question, just a bit more sophisticated. It required handling multiple corner cases and tested my knowledge of maps and sets. Again, readability, OOPs concepts, minimum code duplication, and unit tests were major checkpoints. I solved 3 parts. Verdict: Very Strong Hire
Round 3 (Design - 45 mins): I felt this was my best round. I was asked to design a part of the system that Stripe actually uses. I demonstrated everything from fulfilling all requirements, discussing tradeoffs, and designing the database structure. The interviewer asked a few questions and seemed interested in the tradeoffs I was discussing. Verdict: Very Strong Hire
Round 4 (Bug Squash - 45 mins): This was my worst round. They gave me access to one of their large repositories with a potential bug that was failing some test cases. The task was to find the test case and fix it. I was slow in this round as I moved to insignificant code blocks and was called out for it in the debrief. I was able to find the bug just in time (with a hint from the interviewer), but couldn't fix it. I definitely wasn't up to par in this round. Verdict: Weak Reject
Round 5 (Integration Round - 45 mins): I had almost given up as I knew I had messed up the previous round. I couldn't get my systems ready for this round on time and lost some time doing that. Again, it was a multipart question related to HTTP Requests, JSON handling, etc. This round depends a lot on the language used. If you use something like Python, you might be able to complete all 5 parts, but with Java, the first 2-3 parts take up all your time. I could complete the first 2 parts. However, the interviewer said that there are other things besides the number of parts completed that are considered while giving feedback. I had mentally given up going into this round, so a few things about me not communicating enough were also called out. Verdict: Lean Hire
Round 6 (HM Round - 45 mins): This was a standard HM round with questions about past experiences, future aspirations, etc. The HM was a really nice person and talked very frankly about the role and culture at Stripe. I liked the kind of work he described. Verdict: Very Strong Hire
Final Verdict: Rejected
I really liked the interview process at Stripe and enjoyed it thoroughly. However, I felt that having 5 rounds on the same day was a bit of an overstretch. The people seemed really helpful and the recruiter was very nice. She explained everything in detail and provided me with detailed feedback for each round, including the debrief discussion. The Bug Squash Round was the one that ultimately led to my rejection. Overall, it was a really nice interview.