I applied online. The process took 2 months. I interviewed at TikTok (San Jose, CA) in Sep 2023
Interview
Describe yourself. Discuss your educational background. What questions do you have for me? Where do you see yourself in five years? Ten years? What would you look to accomplish in the first 30 days/60 days/90 days on the job?
I interviewed for 4 different roles (2 frontend, 2 backend), failed all of them. Felt like I wasted my time because I was deemed not to have enough experience for 2 roles only after the final round, which should be something that is noted early during the resume screening.
The interviews are very team dependent. For backend interviews, for most teams in the first 2 rounds, expect to be asked many CS fundementals topics in the first 30 minutes. To prepare, revise everything such as concurrency, networking, caching, programming languages that you state you know in your resume, etc. The last 30 minutes, expect to be asked to solve 1-2 LC medium questions. For frontend interviews, expect to be asked questions related to JavaScript, TypeScript, React, networking, any other FE library/frameworks you mentioned in your resume. Most of the coding questions for frontend interviewers wasn’t typical DSA questions. Go to leetcode and filter questions by “javascript”, those are the types of questions you will be asked to code. The hiring manager round for both backend and frontend was resume deep dive and system design.
Tiktok is okay with candidates interviewing for another role anytime after you fail the interview for a current role. They are pretty desperate in hiring due to their infamous high turnover rate, contact any recruiter via LinkedIn to get a referral so that you can possibly skip the Online Assessment. I never had to do a single Online Assessment for any of the 4 teams I interviewed with.
◦ Introductions and past experience ◦ CS Fundamentals and Coding: Question will be of harder difficulty than the question of the screening round and require optimization in memory or performance constraints. You should be able to discuss details of their implementation, and any performance or memory tradeoffs made. ◦ Discussion of programming language concepts: Familiarity of C/C++ and lower level memory management (if not used in the coding exercise). Knowledge of mobile development languages (Java/Objective-C and native code interop) ◦ Q&A