← Back to Directory

TikTok interview notes, page 14 of 28

Large Enterprises

Most of these TikTok write-ups come from Data Scientists (111), then Software Engineers (102) and Product Managers (35). The most reported rounds are the technical phone screen (167), the product sense round (33), the system design round (25) and the behavioral / leadership round (21).

279 interview notes · updated Sep 2026

TikTok·Software Engineer·Technical Phone Screen

May 2026
TikTok software engineer interview with a graph problem that had a twist I didn't see coming. The torus wrapping condition threw me off more than I expected, and the follow-ups kept coming.
  • Given an m x n binary grid on a torus (top wraps to bottom, left wraps to right), count the number of connected land components (islands) using 4-directional adjacency with wrap-around.
  • Solve the same torus island problem using two different approaches, such as graph search and a disjoint-set (union-find) structure.
  • What are the time and space complexities of your solutions?
  • Extend your solution to handle a stream of single-cell flip updates (toggling between land and water) and report the island count after each update.

“I started with standard BFS island counting and felt pretty good about it, then the wrap-around adjacency hit me.”

View Post

TikTok·Data Scientist·Technical Phone Screen

May 2026
TikTok data scientist interview focused entirely on SQL for ad safety, with a pretty involved schema and four escalating tasks. The questions were technical and specific enough that you really couldn't wing it.
  • Given an ad safety schema with advertisers, ads, page visits, and reports tables, write a single SQL query to identify 'top bad advertisers' defined as those with at least 1,000 page visits and 50 unique reporters in the last 7 days. Rank them by report rate (total reports divided by total visits), using window functions with deterministic tiebreakers, and return only the top 5 ranks.
  • Extend the previous advertiser ranking query to also output each advertiser's single worst ad, defined as the ad with the highest report rate in the last 7 days among ads with at least 100 visits. Break ties by total reports descending then ad_id ascending.
  • Write a query that produces a daily leaderboard for the last 7 days, with one row per advertiser per day, ranked by that day's report rate. Only include advertisers with at least 200 visits on that specific day, and make sure advertisers with zero reports still show up with a rate of zero. Exclude days where an advertiser had no visits at all.
  • In comments within your query, explain how the approach avoids double-counting when a user both visits and reports the same ad within the same minute, and how it handles report rows that have no corresponding visit row in the time window.

“This is the kind of question where the filtering criteria and the ranking criteria are separate and it's easy to conflate them.”

View Post

TikTok·Data Scientist·Technical Phone Screen

May 2026
TikTok data scientist interview with a single very deep ML question about fraud detection. The whole thing was basically one giant multi-part problem and they expected you to hold all the pieces together at once, which was rough.
  • You have 10 million time-ordered transactions with 300 features and 0.5% fraud rate. Walk through your full modeling approach: which algorithm you'd start with and why (covering bias-variance tradeoffs, margins, and sensitivity to label noise on the minority class), how you'd handle class imbalance and which evaluation metric you'd prioritize, what your initial hyperparameter grid looks like with concrete starting values, how you'd design validation to avoid data leakage given the time ordering, and two scenarios where gradient boosting would actually underperform a bagged ensemble on this specific task.

“This is basically five questions wrapped in one and they absolutely expect you to treat it that way.”

View Post

TikTok·Software Engineer·Technical Phone Screen

May 2026
Technical screen at TikTok for a software engineer role, pretty deep dive into Spring internals. Not the kind of interview where you can get by with surface-level answers.
  • Walk me through the full bean lifecycle in Spring, from creation through post-processing, initialization, and eventual destruction.
  • What's the difference between JDK dynamic proxies and CGLIB proxies, and when does Spring choose one over the other?
  • How does Spring implement transaction management using proxies under the hood?
  • How does Spring process annotations like @Transactional or @Autowired at runtime?
  • Explain how classpath scanning works and how Spring discovers and registers beans.
  • What are the different bean scopes in Spring and what are the practical implications of each?
  • How does Spring detect and handle circular dependencies between beans?

“I knew the broad strokes but fumbled the ordering of BeanPostProcessor hooks relative to InitializingBean.”

View Post

TikTok·Machine Learning Engineer·Onsite - System Design / Architecture

May 2026
TikTok ML engineer interview that was basically one big system design deep-dive on LLM-powered recommendation systems. Covered a lot of ground fast, from retrieval architectures to evaluation, and I felt underprepared for how far into the weeds they wanted to go.
  • How would you incorporate large language models into a recommendation system, and what use cases would you prioritize?
  • Walk me through different architectural patterns for integrating LLMs into a recommender, such as using the LLM as a feature generator, a reranker, or an orchestration agent.
  • How do you handle latency and cost constraints when LLMs are part of the serving path for recommendations?
  • How would you design an evaluation framework for an LLM-augmented recommendation system, covering both offline metrics and online experiments?
  • What safety and content filtering considerations apply when LLMs are generating or influencing recommendation outputs?

“I started with metadata enrichment and cold-start handling because those felt like the safest bets to explain quickly.”

View Post

TikTok·Software Engineer·Onsite - Behavioral / Leadership

May 2026
Behavioral loop at TikTok for a software engineer role, structured around resume deep-dives and a few classic situational prompts. Nothing too surprising format-wise, but the depth they expected on technical context and measurable outcomes caught me a little flat-footed.
  • Walk me through two major projects on your resume, covering your role, the tech stack, the challenges you hit, what you did about them, the outcomes, and what you took away.
  • Tell me about a conflict you had with a teammate or stakeholder. What caused it, how did you handle it, and what came out of it?
  • What are you looking for in your next role, and why does this team fit what you want?
  • Do you have any questions for us about the role, the team, or how success is measured here?

“The part that tripped me up was the 'measurable outcomes' bit.”

View Post

TikTok·Software Engineer·Technical Phone Screen

May 2026
TikTok software engineer coding round, one problem the whole session. It was a game simulation question that looked manageable at first and then kept growing in scope as I talked through it.
  • Implement the core loop of a match-3 puzzle game (think Candy Crush): given an m×n grid, repeatedly detect runs of 3+ matching values horizontally or vertically, remove them all at once, apply gravity so cells fall down within each column, and keep looping until the board stabilizes. Return the final board and total cells removed across all passes.

“This one spiraled.”

View Post

TikTok·Software Engineer·Technical Phone Screen

May 2026
TikTok software engineer coding round, two questions back to back. Both were algorithmically heavier than I expected for a phone screen, and the follow-up variants on the second one really caught me flat-footed.
  • Given an m x n matrix of non-negative integers, find a path from top-left to bottom-right (moving only right or down) that minimizes the total sum. Return the minimum sum and one valid path. Also discuss how you'd handle a matrix too large to fit in memory.
  • Implement sqrt(x) using binary search. First version: return the floor of the square root for a non-negative integer without using built-in functions, and handle overflow. Second version: return a floating-point approximation within 1e-6 for a non-negative real number, and cover edge cases like x=0, values between 0 and 1, and very large x.

“I went straight to DP and it clicked pretty fast.”

View Post

TikTok·Software Engineer·Technical Phone Screen

May 2026
TikTok software engineer coding round, one question the whole session. The problem was binary tree max path sum, classic but with enough edge cases to trip you up if you're not careful about how you handle negatives.
  • Given the root of a binary tree where node values can be positive, negative, or zero, return the maximum path sum across all possible paths. A path can start and end at any nodes and must contain at least one node.

“The basic idea clicked pretty fast: recurse through the tree, track the best gain you can get from each subtree, and at every node consider whether using both children forms a better global answer.”

View Post

TikTok·Software Engineer·Technical Phone Screen

May 2026
TikTok software engineering interview that went deep on design patterns. They wanted actual code plus a real discussion about trade-offs, not just definitions, which I wasn't fully prepared for.
  • Implement thread-safe and lazy versions of the Singleton pattern in Java and discuss the trade-offs of each approach.
  • Implement the Factory Method pattern in Java and explain how it affects extensibility compared to direct instantiation.
  • Implement the Strategy pattern in Java and compare its testability against the other patterns you've shown.
  • Refactor one of your pattern examples to reduce coupling and support dependency injection. Walk through your reasoning.

“I went straight to double-checked locking and felt pretty good about it, but then they pushed on why lazy initialization even matters and whether the volatile keyword was strictly necessary.”

View Post