TikTok SDE Virtual On-site Interviews & Questions

If you're preparing for an interview for a Software Development Engineer (SDE) position at TikTok, it's critical to understand its unique interview pace and focus. TikTok's interview style is typically more fast-paced and direct than some traditional tech giants. Their programming questions are usually of medium to high difficulty and are often variations of common high-frequency questions. In addition, the Behavioral Interview (BQ) session places extra emphasis on a candidate's communication skills and teamwork. Many candidates may initially be uncomfortable with this fast switching pace and feel the need to move on to the next session before they are fully in the zone.

I recently participated in a whole interview process for TikTok, and I'll share my personal experience in detail below.

TikTok Phone Interview Process

Recruiter phone calls

A TikTok recruiter contacted me through Collage and set up a phone conversation that focused on the position information. As with most companies, this communication focused primarily on the basics of my situation, such as work experience, salary expectations, and visa status. We also chatted briefly about previous projects I've worked on, but didn't go into depth.

First round of technical interviews

The interviewer for this round was a software engineer from TikTok, an e-commerce team from Singapore. In the first half of the interview, the interviewer delved into the projects on my resume. She kept pressing for specific technical challenges in the project and how I solved them. We also discussed the system's concurrent processing capabilities and scalability, and she questioned me on some details in my design.

I felt that the interviewer's questions were very focused on large-scale, highly concurrent distributed systems, and my project had limited experience in this area. I found it very challenging to verbally describe the design of the system without a whiteboard tool.

The second half of the interview was a programming session. The topic wasTwo Sumvariant, which requires that all pairs of two numbers in the array whose sum is the target value be found, and that no additional hash tables or data structures be used.

A few days later, the recruiter notified me that I had advanced to the next round of interviews.

Second round of technical interviews

The second round interviewer was also a software engineer at TikTok, from the advertising platform team in London.

The interview started with the interviewer asking me to do two programming questions first:

  • Programming Question 1: De-duplication and sorting of arrays (requires in-place operations and cannot use built-in functions).

  • Programming Question 2: Given a two-dimensional array, find all possible combinations of its paths and require that there be no duplicate elements in the paths.

After completing the programming questions, the interviewer asked me in-depth questions about the details of my previous projects. He paid particular attention to my thought process behind making technical decisions, repeatedly asking "Why did you choose to do this instead of that?"

Third round of system design interviews

The topic of this interview is:Design a live streaming reward gift systemThe

At the beginning, I failed to confirm the key data of the system, such as Daily Active Users (DAU) and Requests per Second (QPS), clearly with the interviewer. This led to my initial design solution completely deviating from the actual requirements. With the interviewer's reminder, I reconfirmed the data metrics and adjusted the design.

My final solution includes: using message queues (e.g., Kafka) to handle highly concurrent reward requests; coping with the pressure of reading and writing massive data by splitting libraries and tables; using Redis to cache users' gift balances to minimize database access; and designing a gift leaderboard that is computed and updated by a timed task.

During the discussion, the interviewer challenged me on why I chose a NoSQL database to store reward records instead of a relational database. I was also challenged on how to ensure atomicity of gift transactions and how to prevent duplicate rewards.

TikTok Interview Tips Summary

  • Programming Interview:: Proficiency in high-frequency algorithmic questions and practicing handwriting bug-free code before an interview is more effective than blindly brushing up on new questions. Pay special attention to the boundary conditions of your code and make it a habit to run a few test cases verbally before committing your code.

  • system design: Be sure to start the interview by confirming three key figures with the interviewer:DAU,peak QPSrespond in singingstorage capacity. If these key numbers are missing, your design will become impractical.

  • Object-Oriented Design (OOD): When an interviewer adds a new requirement to an OOD topic, instead of rushing to modify the code, think first about whether design patterns can be applied to optimize the structure.strategic patternrespond in singingobserver modelare the two most commonly used modes.

oaassist-contact
Contact Us