I applied through the TikTok Careers portal and was contacted by a recruiter. The interview process consisted of three rounds: a recruiter call, two technical rounds, and a managerial round.
The first round was a simple call with the recruiter to discuss my experience and answer common questions, such as why I wanted to work at TikTok and my familiarity with C++. The recruiter explained the hiring process and informed me that there would be two technical rounds and a managerial round with a hiring manager's manager in Singapore.
The second round focused on technical and system design aspects. The interviewer asked me about storing large amounts of data in a database, specifically focusing on data consistency. I discussed edge cases and attempted to come up with a solution. The interviewer was looking for a two-phase commit protocol, which I was not familiar with at the time. However, the interviewer acknowledged that I covered all the edge cases, which was sufficient. We then moved on to a simple LeetCode problem, "Simplify Path." I explained the solution quickly and coded it even faster, which satisfied the interviewer.
The third round was another technical round. The interviewer asked me a LeetCode Hard question, "Reconstruct Itinerary." I explained my approach, started coding, and gave a quick dry run of the code. The interviewer wanted me to go into detail about the time complexity of the code, but we ran out of time.
Unfortunately, I was rejected. While I believe I performed relatively well in all the interviews, I think they were looking for perfect answers. I could have done better in the system design question in the second interview and been more coherent in my thought process. I also jumped around in my code, which might have given a bad impression. Overall, the interviewers were nice and respectful. However, the recruiter ghosted me without providing feedback.