Table of Contents
On May 28th, 2022, I had a technical interview with Roblox (Karat), but there was a bug in the HTTP request data of the LeetCode question when I was told to assume there wasn’t. This bug caused me to shet my pants horrendously… Live. On. Video.
I technically passed 2 of 3 questions, but the bug caused my second answer to fail an edge case. This failure was problematic since Roblox corporate policy requires that you pass two questions...
I reported the bug, but still was unsure whether I'd pass to the next round. Unlike my Spotify Technical Interview, I was confident that I would not make it.
So that’s how I got through the second round of an interview loop for a mid-level role.
Over the course of 2 months, I would go through a Behavioral, 4 Onsite, and Bar Raiser rounds: Two with managers who were considering microservices but didn’t even know what a monorepo was...
They wanted to place me at Junior. Fugg it. I needed HR to look past the fact that I didn’t have a degree even though I could solve all their technical problems, including a 45-MINUTE BUILD TIME?! I smiled on the outside but laughed very hard in private, like a certain religious sect.
The Offer
The night was June 29th, 2022. At this point, all of my interviews were finished. I had even spoken to a manager — on the previous day — who wanted me so badly that he fast-tracked me to a decision by the Hiring Committee.
Later, I received an email from the recruiter asking for my physical address. This exchange was followed by a call where the recruiter gassed me up: “This is the biggest offer I’ve ever seen for an IC1! Consider me your brother.”
Things were getting serious.
That same night, God sent two virgin Mormon girls to my doorstep. It was a sign I was headed in the right direction, and GODDAMN! One of them was surely a sinner, and I’d sin with her, given the chance of course...
I was also surprised because I’m pretty sure their religion says black people are demons. Of course, I turned them down when I realized they were just with me for the type conversion.
Now, let’s be honest. It’s 2022. Even if the entire team loved me, I knew that there was still a chance I would be fucked over by someone with no stake in the matter. Certain companies hire candidates based on the decision of people who don't even witness the interview. Roblox is one of them.
Offers are made on Tuesday, so imagine my surprise when I didn’t receive a call or email… That was until July 6th, 2022. It was the recruiter and he had “bad news”.
Despite the team’s best efforts, I would not get an offer. According to the hiring committee, this decision was because I “couldn’t code” since I “took too long in one onsite round while receiving too many hints”.
So what actually happened?
Technical Onsite #2
Let’s start with the second interview, which relates to the hiring committee’s comments. In this interview, a prompt was given by the interviewer (Yuri Belotserkovsky) with a shadow (Claude Phan).
Initially, the interviewer clarified that we would create a single-threaded KVS application. I solved this question relatively quickly by using a Go map.
As a result, the interviewer changed the scope of the prompt to a multi-threaded KVS application. So I used a synchronized map.
Then, the interviewer extended the prompt to implement database transaction functionality. To handle the “delete operation” correctly, I had to use a brute-force memory solution.
The interviewer didn’t like this, so we changed the scope of the prompt to implement a database transaction functionality without a brute force memory solution (which involved some weird rules regarding the delete operation).
Every time we changed scope, I would ask clarifying questions, which the shadow must have written down as hints. Not to mention, the interview took one hour and thirty minutes instead of the scheduled hour.
I implemented the last prompt right as the “time limit” occurred. The shadow responded to this submission with, “Sorry, but you ran out of time”. So it’s possible that I wasn’t even marked as solving the problem.
Technical Onsite #1
In the first interview, I was given 30 minutes to implement a variation of a topological sort problem.
At first, I would waste 6 minutes (20% of the interview) reformatting the prompt data in Go and back to Python since the prompt was not auto-filled for Go (but was for Python). So much for using any language in a role that involves C++…
This Topological Sort Algorithm explanation is 14 minutes. How am I supposed to explain this algorithm to the interviewers (Kelly Scanlon, Mckay Davis) and solve the problem within 30 minutes? No idea.
Unfortunately, my initial explanation to the interviewers must not have been clear enough because one of them recommended a different method of parsing data from the parser I wrote, which was necessary to perform a topological sort. As a result, I got stuck at minute 22, which was also the moment the interviewers finally understood my solution.
I’d contemplate whether I should have just implemented a brute force, only to continue the optimal solution. Then, with only 7 minutes left, pressure resulted in a Python syntax error related to a list comprehension.
No one in the interview could figure it out.
Conclusion
After a Phone Screen, 2 Technical Rounds, a Behavioral Round, 4 Onsite Rounds, and a Bar Raiser, I had no job. All because I couldn’t solve one LeetCode question in 30 minutes.
It didn’t matter if I knew how to solve the problems. It didn’t even matter if I could have fixed their 45-minute build time in the time we spent interviewing (10+ hours). All that mattered was solving a trivia question in an unnatural work environment and dealing with an interviewer who kept changing scope.
Some people are going to read this interview experience and say I had a shot and fucked it up. That’s a fair assessment, I guess... I should have done more LeetCode.
In any case, Fuck You Roblox Hiring Committee.