Skip to main content

TikTok Software Engineer Interview Questions

Review this list of 34 TikTok Software Engineer interview questions and answers verified by hiring managers and candidates.
  • TikTok logoAsked at TikTok 
    301 answers
    Video answer for 'What's your favorite product and why?'
    +290

    "Clarify "What do you mean by favorite product? Are you thinking specifically hardware, software, or a feature within those, or something non-electronic? Dealer's Choice. "Are you asking why I love this product, or to explain why this product is a market leader independent of how i feel about it? Talk about why YOU love this product. Rephrase Question With all that in mind, i want to rephrase the question. "What is your favorite software product and what features in this product"

    Tim W. - "Clarify "What do you mean by favorite product? Are you thinking specifically hardware, software, or a feature within those, or something non-electronic? Dealer's Choice. "Are you asking why I love this product, or to explain why this product is a market leader independent of how i feel about it? Talk about why YOU love this product. Rephrase Question With all that in mind, i want to rephrase the question. "What is your favorite software product and what features in this product"See full answer

    Software Engineer
    Product Design
    +4 more
  • TikTok logoAsked at TikTok 
    15 answers
    +11

    "Whatever your situation is, the correct answer is: "I'm very happy with my current job (expand on your experience, ability to deliver, team, achievements etc). But when I saw this opportunity, I had find out more." You essentially want to sounds interested, but clarify that your current situation is great."

    Bjorn L. - "Whatever your situation is, the correct answer is: "I'm very happy with my current job (expand on your experience, ability to deliver, team, achievements etc). But when I saw this opportunity, I had find out more." You essentially want to sounds interested, but clarify that your current situation is great."See full answer

    Software Engineer
    Behavioral
    +1 more
  • TikTok logoAsked at TikTok 
    126 answers
    Video answer for 'Tell me about yourself.'
    +118

    "As you know, this is the most important question for any interview. Here is a structure I like to follow, Start with 'I'm currently a SDE/PM/TPM etc with XYZ company.... ' Mention how you got into PM/TPM/SDE field (explaining your journey) Mention 1 or 2 accomplishments Mention what you do outside work (blogging, volunteer etc) Share why are you looking for a new role Ask the interviewer if they have any questions or will like to dive deep into any of your experience"

    Bipin R. - "As you know, this is the most important question for any interview. Here is a structure I like to follow, Start with 'I'm currently a SDE/PM/TPM etc with XYZ company.... ' Mention how you got into PM/TPM/SDE field (explaining your journey) Mention 1 or 2 accomplishments Mention what you do outside work (blogging, volunteer etc) Share why are you looking for a new role Ask the interviewer if they have any questions or will like to dive deep into any of your experience"See full answer

    Software Engineer
    Behavioral
    +19 more
  • TikTok logoAsked at TikTok 
    31 answers
    +26

    "We can use dictionary to store cache items so that our read / write operations will be O(1). Each time we read or update an existing record, we have to ensure the item is moved to the back of the cache. This will allow us to evict the first item in the cache whenever the cache is full and we need to add new records also making our eviction O(1) Instead of normal dictionary, we will use ordered dictionary to store cache items. This will allow us to efficiently move items to back of the cache a"

    Alfred O. - "We can use dictionary to store cache items so that our read / write operations will be O(1). Each time we read or update an existing record, we have to ensure the item is moved to the back of the cache. This will allow us to evict the first item in the cache whenever the cache is full and we need to add new records also making our eviction O(1) Instead of normal dictionary, we will use ordered dictionary to store cache items. This will allow us to efficiently move items to back of the cache a"See full answer

    Software Engineer
    Data Structures & Algorithms
    +6 more
  • TikTok logoAsked at TikTok 
    11 answers
    +8

    "In my time at Snapp! I was in charge of communicating the product backlog to our CEO. We had a shared Jira board that he had access to and I made specifically for him. One day he saw me in the office and said he doesn’t know anything about our backlog and that’s because I failed to communicate with him. I got upset at first because of the fact that I made the dashboard exclusively for him. But I tried to ask questions to understand his point of view in depth. He then mentioned he doesn't have t"

    Ra R. - "In my time at Snapp! I was in charge of communicating the product backlog to our CEO. We had a shared Jira board that he had access to and I made specifically for him. One day he saw me in the office and said he doesn’t know anything about our backlog and that’s because I failed to communicate with him. I got upset at first because of the fact that I made the dashboard exclusively for him. But I tried to ask questions to understand his point of view in depth. He then mentioned he doesn't have t"See full answer

    Software Engineer
    Behavioral
    +9 more
  • 🧠 Want an expert answer to a question? Saving questions lets us know what content to make next.

  • +2

    "Referring to https://www.forbes.com/sites/forbesbusinesscouncil/2022/03/23/15-strategies-for-balancing-competing-stakeholder-priorities/?sh=7c82aa68262f Understand the conflicting priorities and align it with the goal/ objectives and the company mission. Start with the Least Common Denominator between the conflicting priorities to come to a commonality and start from there to objectively approach the next imp priority Always keep communication on and be transparent with 'equality' an"

    Pramod V. - "Referring to https://www.forbes.com/sites/forbesbusinesscouncil/2022/03/23/15-strategies-for-balancing-competing-stakeholder-priorities/?sh=7c82aa68262f Understand the conflicting priorities and align it with the goal/ objectives and the company mission. Start with the Least Common Denominator between the conflicting priorities to come to a commonality and start from there to objectively approach the next imp priority Always keep communication on and be transparent with 'equality' an"See full answer

    Software Engineer
    Behavioral
    +6 more
  • TikTok logoAsked at TikTok 
    1 answer

    "Use a representative of each, e.g. sort the string and add it to the value of a hashmap> where we put all the words that belong to the same anagram together."

    Gaston B. - "Use a representative of each, e.g. sort the string and add it to the value of a hashmap> where we put all the words that belong to the same anagram together."See full answer

    Software Engineer
    Data Structures & Algorithms
    +4 more
  • TikTok logoAsked at TikTok 
    2 answers

    " At low level: I would use two stacks: one for forward history and other for backward history. i go to tryexponent.com => this url will be stored in backward history stack. i go to google => again this url will be stored in backward history stack. i press back => data from backward history will be popped and put in to forward history stack. I press forward => data from forward history stack will be popped and put in to backward history tab. Also, whenever i go to any url,"

    Anubhav S. - " At low level: I would use two stacks: one for forward history and other for backward history. i go to tryexponent.com => this url will be stored in backward history stack. i go to google => again this url will be stored in backward history stack. i press back => data from backward history will be popped and put in to forward history stack. I press forward => data from forward history stack will be popped and put in to backward history tab. Also, whenever i go to any url,"See full answer

    Software Engineer
    System Design
    +1 more
  • TikTok logoAsked at TikTok 
    57 answers
    Video answer for 'Merge Intervals'
    +49

    "const mergeIntervals = (intervals) => { const compare = (a, b) => { if(a[0] b[0]) return 1 else if(a[0] === b[0]) { return a[1] - b[1] } } let current = [] const result = [] const sorted = intervals.sort(compare) for(let i = 0; i = b[0]) current[1] = b[1] els"

    Kofi N. - "const mergeIntervals = (intervals) => { const compare = (a, b) => { if(a[0] b[0]) return 1 else if(a[0] === b[0]) { return a[1] - b[1] } } let current = [] const result = [] const sorted = intervals.sort(compare) for(let i = 0; i = b[0]) current[1] = b[1] els"See full answer

    Software Engineer
    Data Structures & Algorithms
    +6 more
  • TikTok logoAsked at TikTok 
    13 answers
    Video answer for 'Design a typeahead box for a search engine.'
    +5

    "It would have been more interesting to focus on the system design rather than the Trie DS, Interviewee could have just mentioned the Trie and passed to things more important. Interviewee should have focused on the factors on which he wants to scale the API servers, popularity of the query parts ? region may be ? A hash of many factors ? Caches should have definitely be discussed, Cache eviction policies, Cache invalidation managements... Interviewee should have mentioned which kind of API pro"

    Aymen D. - "It would have been more interesting to focus on the system design rather than the Trie DS, Interviewee could have just mentioned the Trie and passed to things more important. Interviewee should have focused on the factors on which he wants to scale the API servers, popularity of the query parts ? region may be ? A hash of many factors ? Caches should have definitely be discussed, Cache eviction policies, Cache invalidation managements... Interviewee should have mentioned which kind of API pro"See full answer

    Software Engineer
    System Design
    +1 more
  • TikTok logoAsked at TikTok 
    24 answers
    +21

    "def is_valid(s: str) -> bool: stack = [] closeToOpen = { ")" : "(", "]" : "[", "}" : "{" } for c in s: if c in closeToOpen: if stack and stack[-1] == closeToOpen[c]: stack.pop() else: return False else: stack.append(c) return True if not stack else False debug your code below print(is_valid("()[]")) `"

    Anonymous Roadrunner - "def is_valid(s: str) -> bool: stack = [] closeToOpen = { ")" : "(", "]" : "[", "}" : "{" } for c in s: if c in closeToOpen: if stack and stack[-1] == closeToOpen[c]: stack.pop() else: return False else: stack.append(c) return True if not stack else False debug your code below print(is_valid("()[]")) `"See full answer

    Software Engineer
    Data Structures & Algorithms
    +4 more
  • TikTok logoAsked at TikTok 
    11 answers
    +8

    "This is a great question! If you don't mind, I'd love to list 3 strengths and weaknesses then dive a little deeper on one of each of them. I think my three greatest strengths are: Empathy Openness to feedback Drive And three weaknesses I have been working to strengthen are: Sometimes my desire to achieve can put me at risk of overcommitting Communicating status to the right stakeholders at the appropriate time Creating detailed and strategic lists of priorities so I can meet th"

    Adam M. - "This is a great question! If you don't mind, I'd love to list 3 strengths and weaknesses then dive a little deeper on one of each of them. I think my three greatest strengths are: Empathy Openness to feedback Drive And three weaknesses I have been working to strengthen are: Sometimes my desire to achieve can put me at risk of overcommitting Communicating status to the right stakeholders at the appropriate time Creating detailed and strategic lists of priorities so I can meet th"See full answer

    Software Engineer
    Behavioral
    +3 more
  • TikTok logoAsked at TikTok 
    69 answers
    Video answer for 'Move all zeros to the end of an array.'
    +64

    "Initialize left pointer: Set a left pointer left to 0. Iterate through the array: Iterate through the array from left to right. If the current element is not 0, swap it with the element at the left pointer and increment left. Time complexity: O(n). The loop iterates through the entire array once, making it linear time. Space complexity: O(1). The algorithm operates in-place, modifying the input array directly without using additional data structures. "

    Avon T. - "Initialize left pointer: Set a left pointer left to 0. Iterate through the array: Iterate through the array from left to right. If the current element is not 0, swap it with the element at the left pointer and increment left. Time complexity: O(n). The loop iterates through the entire array once, making it linear time. Space complexity: O(1). The algorithm operates in-place, modifying the input array directly without using additional data structures. "See full answer

    Software Engineer
    Data Structures & Algorithms
    +4 more
  • TikTok logoAsked at TikTok 
    2 answers
    Video answer for 'Design a key-value store.'

    "Simple file system ( Hash Map , LSM trees), and consistent hashing. I failed to discuss about conflicts ( Versioning)"

    V V. - "Simple file system ( Hash Map , LSM trees), and consistent hashing. I failed to discuss about conflicts ( Versioning)"See full answer

    Software Engineer
    System Design
    +2 more
  • TikTok logoAsked at TikTok 
    19 answers
    Video answer for 'Given stock prices for the next n days, how can you maximize your profit by buying or selling one share per day?'
    +14

    "public static int maxProfitGreedy(int[] stockPrices) { int maxProfit = 0; for(int i = 1; i todayPrice) { maxProfit += tomorrowPrice - todayPrice; } } return maxProfit; } "

    Laksitha R. - "public static int maxProfitGreedy(int[] stockPrices) { int maxProfit = 0; for(int i = 1; i todayPrice) { maxProfit += tomorrowPrice - todayPrice; } } return maxProfit; } "See full answer

    Software Engineer
    Data Structures & Algorithms
    +4 more
  • TikTok logoAsked at TikTok 
    9 answers
    +6

    "DFS with check of an already seen node in the graph would work from collections import deque, defaultdict from typing import List def iscourseloopdfs(idcourse: int, graph: defaultdict[list]) -> bool: stack = deque([(id_course)]) seen_courses = set() while stack: print(stack) curr_course = stack.pop() if currcourse in seencourses: return True seencourses.add(currcourse) for dependency in graph[curr_course]: "

    Gabriele G. - "DFS with check of an already seen node in the graph would work from collections import deque, defaultdict from typing import List def iscourseloopdfs(idcourse: int, graph: defaultdict[list]) -> bool: stack = deque([(id_course)]) seen_courses = set() while stack: print(stack) curr_course = stack.pop() if currcourse in seencourses: return True seencourses.add(currcourse) for dependency in graph[curr_course]: "See full answer

    Software Engineer
    Data Structures & Algorithms
    +4 more
  • TikTok logoAsked at TikTok 
    10 answers
    Video answer for 'What is your leadership style?'
    +7

    "My leadership style is flexible and adaptive, it varies depending on the team members and the needs of the company. My leadership goal is to empower the team and inspire and grow leaders. In order to achieve that, I combine transformational, democratic and coaching leadership styles. Usually when we are facing a new type of challenge, or at the early stage of a project, I like to adapt the transformational leadership which allows me to listen to all the suggestions from the team members and sta"

    onering2ruleall - "My leadership style is flexible and adaptive, it varies depending on the team members and the needs of the company. My leadership goal is to empower the team and inspire and grow leaders. In order to achieve that, I combine transformational, democratic and coaching leadership styles. Usually when we are facing a new type of challenge, or at the early stage of a project, I like to adapt the transformational leadership which allows me to listen to all the suggestions from the team members and sta"See full answer

    Software Engineer
    Behavioral
    +5 more
  • TikTok logoAsked at TikTok 
    16 answers
    +11

    "public static Integer[] findLargest(int[] input, int m) { if(input==null || input.length==0) return null; PriorityQueue minHeap=new PriorityQueue(); for(int i:input) { if(minHeap.size()(int)top){ minHeap.poll(); minHeap.add(i); } } } Integer[] res=minHeap.toArray(new Integer[0]); Arrays.sort(res); return res; }"

    Divya R. - "public static Integer[] findLargest(int[] input, int m) { if(input==null || input.length==0) return null; PriorityQueue minHeap=new PriorityQueue(); for(int i:input) { if(minHeap.size()(int)top){ minHeap.poll(); minHeap.add(i); } } } Integer[] res=minHeap.toArray(new Integer[0]); Arrays.sort(res); return res; }"See full answer

    Software Engineer
    Data Structures & Algorithms
    +3 more
  • TikTok logoAsked at TikTok 
    18 answers
    Video answer for 'Given an nxn grid of 1s and 0s, return the number of islands in the input.'
    +15

    " from typing import List def getnumberof_islands(binaryMatrix: List[List[int]]) -> int: if not binaryMatrix: return 0 rows = len(binaryMatrix) cols = len(binaryMatrix[0]) islands = 0 for r in range(rows): for c in range(cols): if binaryMatrixr == 1: islands += 1 dfs(binaryMatrix, r, c) return islands def dfs(grid, r, c): if ( r = len(grid) "

    Rick E. - " from typing import List def getnumberof_islands(binaryMatrix: List[List[int]]) -> int: if not binaryMatrix: return 0 rows = len(binaryMatrix) cols = len(binaryMatrix[0]) islands = 0 for r in range(rows): for c in range(cols): if binaryMatrixr == 1: islands += 1 dfs(binaryMatrix, r, c) return islands def dfs(grid, r, c): if ( r = len(grid) "See full answer

    Software Engineer
    Data Structures & Algorithms
    +4 more
  • TikTok logoAsked at TikTok 
    23 answers
    Video answer for 'Find a triplet in an array with a given sum.'
    +17

    "from typing import List def three_sum(nums: List[int]) -> List[List[int]]: nums.sort() triplets = set() for i in range(len(nums) - 2): firstNum = nums[i] l = i + 1 r = len(nums) - 1 while l 0: r -= 1 elif potentialSum < 0: l += 1 "

    Anonymous Roadrunner - "from typing import List def three_sum(nums: List[int]) -> List[List[int]]: nums.sort() triplets = set() for i in range(len(nums) - 2): firstNum = nums[i] l = i + 1 r = len(nums) - 1 while l 0: r -= 1 elif potentialSum < 0: l += 1 "See full answer

    Software Engineer
    Data Structures & Algorithms
    +3 more
Showing 1-20 of 34
Exponent

Get updates in your inbox with the latest tips, job listings, and more.

Follow Us

Products
Courses
Interview Questions
Interview Experiences
Popular articles
Guides
Coaching
For Partners
Company
Exponent © 2026
Terms of Service | Privacy