A recruiter reached out to me via LinkedIn regarding an opportunity at Klarna. They are expanding their business in North America and wanted to hire engineers in Toronto. I was among the first few to be interviewed in Toronto.
The interview process consists of seven parts, which I consider excessive:
Regarding the behavioral rounds, the interviewers were generally acceptable. However, one interviewer was late for the interview and started it while driving. I highly doubt they retained all information before they had fully parked their car. They then dropped off and reconnected after they were settled.
For the two technical parts, the experience was definitely not positive.
For the live coding interview, they chose Leetcode 1610. Honestly, I couldn't comprehend the question at first because the interviewer only showed a block of text and asked me to read it. It wasn't until five minutes later that they presented a visualization of the problem. I don't understand why they couldn't show that initially. Additionally, the interviewer was not very active in providing hints or engaging in conversation. They mostly observed, and that was it. I first presented the brute-force solution and then explained the queue-based optimized algorithm. Regarding writing the code, they stated I could either use Google Docs or the Canvas UI. I spent a considerable amount of time aligning the code and indentation, which felt like wasted effort. After the interview, I Googled the question and discovered it has more dislikes than likes.
For the system design interview, I was asked to design a service to process a transaction before some other transactions are fulfilled. I explained the APIs, the overall logic, and so on. The interviewer asked why I wouldn't return a 200 status code if the transaction couldn't be processed. I explained that 200 signifies success with the POST event and suggested considering 400-series errors for client-side issues. The interviewer repeatedly countered that there was no user error. I agreed but reiterated that it was still invalid and suggested using 422 (Unprocessable Entity) or, in the worst case, 206 (Partial Content) to align with their 200 preference. They then asked what 422 meant. At that point, I realized they might not be open-minded, and I stopped arguing.
They then reiterated their preference for 200 with error messages included. I was taken aback, questioning if that's considered good practice. I also considered localization and noted that API clients rely more on status codes than messages. I believed my solution was correct, but since they insisted, I conceded. They then asked what language I would use to complete this task within a week, where I would deploy it, and what metrics I would monitor. I felt we lacked context and asked for clarification: Are we discussing an existing production endpoint or a completely new one? Is this an addition to an existing service? What is the use case and overall call volume? I felt compelled to keep asking these clarifying questions. They stated, "Let's say it's a POC."
I then asked if for a POC, it would be appropriate to deploy on a cloud micro pod or show it on a local environment. They asked what if there's a huge volume? Honestly, the questions felt too general. I understand the need to ask questions in a System Design interview, but these felt different. I thought technical rounds should be less opinionated or subjective, but it seems that's not the case at Klarna.
Furthermore, I have no idea why the IQ test was required. The questions involved observing patterns of dots on a 5x5 matrix and guessing the next one. I asked HR about its necessity, and they stated it's a company tradition. They also mentioned that failing four out of eighteen questions would result in disqualification.
Regarding the HR aspects, I sent several emails asking if the process could be expedited, as I had two offers in hand but still wanted to explore Klarna. They agreed but took no action, maintaining the original schedule. About a week after my final interview round, they declined my candidacy with a templated email lacking any specific reasons, despite encouraging questions about their decision. I politely requested the reasons for my failure and honest feedback, but received no response.
Ironically, I received offers from FAANG companies around the same time I was rejected here.
Coding - Leetcode 1610
System Design - Design a service to process a transaction only if the sum of certain values in today's transactions is less than some value.
The following metrics were computed from 1 interview experience for the Klarna Senior Software Engineer role in Toronto, Ontario.
Klarna's interview process for their Senior Software Engineer roles in Toronto, Ontario is extremely selective, failing the vast majority of engineers.
Candidates reported having very negative feelings for Klarna's Senior Software Engineer interview process in Toronto, Ontario.