(London) Great experience with constant communication and thorough preparation before each round. The process consists of four steps: An initial call with a recruiter to better understand the position and assess the fit for the role. A technical screening with a series of questions about past experience, typical challenges faced as an engineer, best practices, etc. It might initially seem like a checklist, but it is actually open-ended. A coding round, which can be either a take-home task or a live coding session. I chose the take-home task, which took me about 5–6 hours to complete. The key here is not to overthink or overengineer. This is followed by a live questioning session about improvements and design decisions (again, very open-ended). The final round involves visiting the office (a rare experience nowadays) for an onsite system design interview, where I built a payment gateway, followed by a behavioral interview. It’s important to have a solid understanding of distributed systems and to brush up on security topics such as authentication, encryption, backups, etc.
Overall, all interviewers were supportive and interactive. Communication was clear, and the offer was competitive, but I ultimately decided to accept an offer from my dream company.