There is no doubt that applying to TikTok (ByteDance) is worth it. Employees have described it as a great company for their career, and the benefits of the software engineer role include a competitive salary, opportunities to work on greenfield projects using cutting-edge tech and working with other brilliant individuals.

This company has multiple areas that demand your expertise as a skilled software engineer, including access control and authorization, ETL pipelines, big data, traffic infrastructure, and search engineering.

The prospect of interviewing for a software engineering role at a massive company like TikTok can be daunting, but this TikTok Software Engineer interview guide will help to demystify their process and take you through the types of questions you can expect to be asked.

Interviewing for a software engineering position at TikTok is competitive and unique. The process can take several months to complete. The steps below are what is typically encountered when interviewing for this company:

After submitting your application, an online assessment is likely to follow. This is the first step of evaluating your skills and suitability and will be technically focused. Expect difficult questions on probability and statistics, as well as medium to advanced coding questions.

If you make it through the online assessment, one or two phone screenings may follow. These may be with a recruiter, hiring manager, or someone from human resources.

This is the most intense stage of the interview process. You’ll be interviewed by future team members, colleagues with intersecting roles, and the hiring manager.

There will be at least three rounds of interviews for this step. For a software engineering position, expect situation-based, behavioral, and other types of questions. You may even have to prepare a technical presentation.

TikTok will again assess your technical skills and your ability to work with others. You will be asked to solve some technical problems or explain concepts during this interview. You may have to use pseudocode to answer some questions.

At this stage, expect a few more behavioral questions and be prepared to answer questions on your salary expectations. If you make it this far, there’s a good chance you’ll receive an offer.

Interviewers ask this question because, although conflicts are inevitable, it’s important to have people who can cope with conflicts professionally and won’t make the situation worse.

**How to Answer**

The STAR technique, i.e., Situation, Task, Action, and Result, provides a good approach for answering this question. Describe the situation, define what the challenge was, what action you took, and what the results were. If you do struggle to manage conflict, be upfront about that, but also show how you work to keep things calm, reach a positive resolution, and learn from the experience.

**Example**

*“In a conflict, I make an effort to de-escalate the situation, and I may ask a third party to mediate. A colleague recently made some unprofessional comments after my project was selected and theirs was paused. I made an effort not to take their comments personally, and focused on getting the team up and running so that we could meet our deadlines and justify my project’s selection. I also encouraged the colleague to reach out to the supervisor who made the call to discuss how his project could move forward in the future. I didn’t hear from him after that on this particular situation.”*

This question helps interviewers to gauge how passionate you are about your projects. You are not always expected to blow expectations out of the water, but you can show simple ways in which you make improvements or go above and beyond.

**How to Answer**

This is an ideal question to apply the STAR technique to because it also allows you to really highlight your strengths. Choose a simple project that you enjoyed working on or put a lot of effort into. This makes it easy to show that you relished the chance to get a better result than was expected.

**Example**

*“We were recently digitizing patient records at the clinic where I was interning. We were supposed to incorporate an OCR so the data could be easier to look up on a computer. This was only intended to capture the printed data on the patient forms, and I wondered if we could also incorporate handwriting recognition to capture information that patients or providers had written as well. The resulting system did a great job capturing printed data and an okay job with handwritten notes, but a user could piece together the context and it justified greater investments in the future.”*

The interviewer wants to know what sets you apart from others. This is a variation of the usual strengths and weaknesses question.

**How to Answer**

You should have a few strengths and weaknesses in mind before the interview. You can again use the STAR approach here to showcase how your strengths have helped you in your current or past roles.

**Example**

*“I am an excellent planner. I know how to plan my current and future workload to avoid getting overwhelmed. When I heard about our CTO’s upcoming meeting with shareholders, I knew we’d have new tasks to tackle immediately after. So, before the meeting, I pushed to clear as much pending work as possible. Sure enough, after the meeting, the CTO informed us that there were a few tasks we had to start and finish before FY’s end so that we could hit the ground running in the new year.”*

This question is asked to see how well you will fit into the company compared to other candidates. You will want to show that you are invested in the same goals as the company and will easily fit into the existing culture.

**How to Answer**

This question requires researching TikTok as a company. This means looking into its values, work culture, projects, etc. The idea is to signal that you’re invested in what the company considers important. Check out four things you can leverage to answer this question on Interview Query.

**Example**

*“I was impressed by how the company reshaped content creation and consumption worldwide. As a software engineer, I find the accuracy of the recommendation algorithm especially impressive. To be part of the behind-the-scenes team that is doing such impressive search engineering would be an incredible first career step. Several past graduates from my college started at TikTok and they told me of the positive culture they’ve experienced, and how the leadership ensures the employees have everything they need to succeed on projects. I also like that the company has made diversity a significant part of the culture at the company.”*

Open conflicts may be rare but disagreements are not. Interviewers want to know how you handle situations where you and your coworkers don’t agree on something. This question tests if you can negotiate, compromise, and make sure others feel heard even when they don’t get their way.

**How to Answer**

The STAR method is also well-suited for tackling this question. It enables you to demonstrate the effectiveness of your skills in handling such situations.

**Example**

*“A colleague and I disagreed on how we should prioritize different aspects of a new project. He believed we needed to start with the base software, but I also knew that the company needed demonstrable results from the project for an upcoming shareholder meeting. I approached my colleague and we went over the timeline. They were able to see that there was no way we’d get results from the base software in time for the meeting. That would put the project at risk. I also listened to his concerns about not meeting future deadlines with this approach. We decided to divide the team into two so we could work on the easily demonstrable aspects of the project and still get a head start on the core software.”*

Interviewers will be interested in how you manage your time, especially in a dynamic work environment like TikTok’s. You want to show that you understand the difference between important and urgent tasks.

**How to Answer**

A good approach is to start with how you schedule tasks on any day i.e. choosing and ranking tasks to work on and the tools you use to keep track of your progress. Secondly, you also want to show how you manage your schedule when priorities suddenly shift and certain tasks become urgent.

**Example**

*“I start each day by setting up the spreadsheet I use to keep track of pending jobs. I gauge the workload and deadlines so I can allocate time to work on specific tasks before they are due. I find that my experience helps me to ensure I don’t allocate a task less time than is realistic. I carve out time slots that leave some room between task completion and the due time and this helped me recently when I had to cover for a colleague on an urgent project after they fell ill at work.”*

This type of question is a simple test of your comprehension and algorithm-creation skills. You’ll need to know what a function returns when conditions are either met or not met.

**How to Answer**

To answer this type of question, you can work backward from the expected result. In this case, the returned integers need to add up to zero. This means there has to be a way of summing different elements. Secondly, since there is no guarantee the first try will yield a result, the function will have to try as many combinations as possible until there are no more combinations, or until it finds a combination that works.

**Example**

*“I’d use a function that recursively scans through the list. It would perform an index-wise scan where the elements in the list would be summed to the element at a specific index in different combinations. There would be a list to keep track of the numbers in each recursion window. This same list will be returned as soon as the elements in it add up to zero. The function would recursively execute until the value of the index was greater than or equal to the length of the list or until a combination that adds up to zero is encountered.”*

This question also tests your ability to come up with an algorithm. In this case, you should note that some algorithms are more efficient than others.

**How to Answer**

Both a bubble sort algorithm and a quick sort algorithm can be used to answer this question. The code for the bubble sort is shorter. However, it’s important to show that you understand it’s not always the ideal choice for larger arrays.

**Example**

*“For a list with fewer than a thousand strings, I would use a bubble sort. The algorithm would have two loops, one nested inside the other. In the inner loop, the string at the first index would be compared to that at the second index and swap places if the first string was ‘greater’. This loop would run as many times as it would be necessary to push the first string to the last index if it was the largest in the list. Once this sequence was finished, the second would start and loop as many times as it would take to move the second largest string to the second last index. The function would run until the outer loop had been executed as many times as there were list elements.”*

This type of question is a simple test of your algorithm-creation skills.

**How to Answer**

This question can be answered by looping through elements at specific indexes in both lists and appending the smaller element to a combined list.

**Example**

*“I’d create a function that loops through both lists while comparing elements from each list. Each list would need an index counter. The element from the list with the smaller element would be added to the merged list and the index counter for that list would be increased by 1 to eliminate the added element from contention. In case of a tie, both elements would be added and both counters increased. This loop would run while both lists have at least one element. If one list exhausted its elements before the other, the other list’s elements would be added at the end of the merged list.”*

This is the advanced form of the previous question and is asked to test your ability to come up with more advanced algorithms.

**How to Answer**

Just as with the previous question, this question can be answered by comparing the smallest unchosen elements in the lists and appending the smallest of the lot. The important point is that since there is an undefined number of lists, you’ll need an array of counters whose length will be defined by the number of lists.

**Example**

*“For ‘N’ sorted lists, the first thing would be to create an array of zeros with a length equal to N. These will serve as the counters for each list so the minimum indexes of individual lists can be increased by 1 each time the smallest element is picked from that list. Once this is done, a While loop will ensure the function runs until every element is added to the merged list. I’d use a For loop to loop through only the smallest available elements in the lists on each round and append the smallest among them to the new list.”*

In companies that generate a lot of data like TikTok, keeping track of where data comes from helps with traceability. This is a simple example of how this can be done when merging data from different sources.

**How to Answer**

Solving this involves iterating through each list, appending the lower value from each comparison while marking it based on whether it came from the first or second list.

**Example**

*“For this situation, I’d create an index tracker for each list then use a loop in which the left-most elements from each list are compared. The smaller string would be appended to the merged list, adding ‘1’ or ‘2’ to represent list 1 or list 2, depending on where it came from. There will be two more loops to ensure that every element that is left in one list when the other has no more elements is marked and added accordingly to the merged list.”*

An interviewer can ask this question to test your algorithm creation skills, but it can be extra challenging if you don’t know what a palindrome is. In such cases, you should ask for clarification.

For your knowledge, a palindrome is a string or sequence that reads the same backward as forward, e.g., kayak or racecar.

**How to Answer**

Checking every possible permutation of a string is computationally expensive. It’s always a good idea to avoid such solutions unless as a last resort. A simpler approach is to take advantage of the fact that in a palindrome, every single letter is mirrored except the one in the middle.

**Example**

*“In a palindrome, every letter must be paired except the one in the middle. Therefore, the function simply needs to loop through the string, checking if more than one character isn’t paired. I would import the Counter() from collections to help with this. I’d also need to keep track of the number of times a character wasn’t paired. To test this I’d set a condition where each time a character’s count divided by 2 had a remainder, it would add 1 to the tracker. At the end of the function, if this tracker had a value less than or equal to one it would return True.”*

Manipulating matrices can be an important part of working with data. This question can be used to test if you understand the effect of individual and combined matrix operations.

**How to Answer**

You can go through the trouble of figuring out how the index of each value would be affected by a 90-degree rotation, or you could achieve the same using some simple matrix operations if the matrix in question is symmetric.

**Example**

*“For a square matrix, I’d write a function that finds the transpose of a matrix and reverses the order of the columns. To achieve this I’d import the NumPy library and use its transpose() and fliplr() functions respectively.”*

You have three tables - `users`

, `transactions`

and `events`

. The `users`

table has columns for id, name, and when the user joined. The `transactions`

table has columns for user ID, name, and transaction time. Finally, the `events`

table has columns for user ID, action, and time of transaction.

**How to Answer**

This type of question tests whether you can write complex queries to an SQL database. It also tests if you can examine data and identify the factors(columns) that you need to test a theory. When testing theories, it may be useful to also identify situations when the solution may not be applicable.

**Example**

*“To test this theory I’d get the average of the number of transactions made by users that interacted with the website and compare them to the average number of transactions made by users who didn’t interact with the website. My query would SELECT the two averages using aliases. The first average would be computed on the number of transactions left after performing an INNER JOIN between the* `transactions`

*and* `events`

*tables filtering out user IDs that don’t show up in the* `events`

*table. The second average would be computed on the transactions from performing a LEFT JOIN of* `users`

*and* `events`

*. I’d then perform an INNER JOIN with transactions filtering out any user whose IDs were not NULL in the* `events`

*table.”*

Questions such as this will be used to test your ability to make simple queries to a database.

**How to Answer**

Answering this question is straightforward. However, due to the limited information provided, you should also ask about any assumptions you’re making with the interviewer.

**Example**

*“Assuming the salary of each employee is already in a separate column, I’d simply use SELECT SUM(salary) AS total_salary FROM employees_table”*

This question also tests your skills at querying information from a database. The added twist is filtering the data based on a specific condition.

**How to Answer**

The focus of this question is on the action column. In this column, we are interested in the action of opening an email. Therefore, we can filter the actions column down to this single action and count the number of distinct user IDs that performed that action i.e., opening an email.

**Example**

*“Assuming the table had columns for user IDs and the actions performed, I’d use the WHERE clause to filter the actions column so I was only dealing with events where the action performed was opening an email. Then I’d use the count() function to count the number of distinct user IDs that are still left.”*

As a software engineer, you will occasionally need to quantify how good a solution is. This will mean defining some metric that can be used to assess the results provided. This type of question tests your ability to define such metrics.

**How to Answer**

You need a metric that can be applied to each search record in the table and give an idea of whether the position of the results is justified by the rating.

**Example**

*“We need a metric that ‘penalizes’ results that are poorly rated, or, alternatively, lowly ranked even if highly rated. This could be achieved by multiplying the inverse of the position by the rating for each result. For each search query, we can measure the quality of the results by getting the average of this metric for the different results.*

Questions on singly linked lists and other data structures are regularly tested in interviews for software engineers. You will regularly employ some of these data structures in your work.

**How to Answer**

In a singly linked list, the last element points to null as there is no other element after it. Therefore, your solution can be a function that loops through the list until it gets to null and returns the element that preceded the null.

**Example**

*“I’d write a function that takes the head node of the list as input, returning None if this isn’t provided. The head would serve as the first element, i.e., the starting point, and a While loop would go through the singly linked list until it came to a Node that pointed to None. The While loop would exit and the function would return this element.”*

This type of question is used to test basic programming skills as well as your ability to define conditions in an algorithm.

**How to Answer**

The most important factor in answering this question is understanding what makes a number a prime number. A number is considered prime if dividing it by any other integer number other than 1, or itself, yields a remainder. When given a list, you’ll have to put each element through the test, dividing them by all the numbers smaller than half and keeping a record of those that meet the conditions to be prime numbers.

**Example**

*“I’d first create a function that takes a list of numbers as input. Then, I’d use a For loop to check for numbers in the list that always yielded a remainder when divided by integer numbers equal to or smaller than half the size of the same number except 1. Any number that met this condition would be appended to a list of prime numbers and this list would be returned once the For loop was finished.”*

This type of question tests your ability to understand a problem and formulate algorithms to solve it using code.

**How to Answer**

To answer this type of question you need a program that will execute the right operations in the right order. This means choosing a starting point and regularly testing whether the sums of numbers on both sides of an index are equal. There should also be some way of notifying the user if there is no index in the list where this is true.

**Example**

*“I’d create a function that takes the list of numbers as input. I’d get the total of all the elements in the list. A For loop would start from the first index. During every loop, the sum of the elements to the right would be calculated by subtracting the sum of the elements to the left from the total. If the two sides are not equal, the element at the current index will be added to the left side before the next iteration starts. This would continue until no more numbers were in the list, or an index where the condition was true was found. The function would return -1 or the relevant index, respectively.”*

Situation-based questions like these are common brain teasers. They are used to test mathematical skills but can also be used to gauge a candidate’s ability to express real-world ideas mathematically.

**How to Answer**

For this type of question, you have to translate the problem into something that can be expressed in terms of probabilities. What guides you here is the fact that the zebras can only run along the triangle’s edge. This gives you the conditions that define the probabilities of their movements. When moving in this manner the zebras only avoid collision if they all run in the same direction.

**Example**

*“There are only two situations in which the zebras don’t collide. Either they all move clockwise, or they all move anticlockwise. Since there’s an equal chance of each zebra moving in either direction, the probability of all the zebras moving clockwise is ^{1}⁄_{2} * 3 which is ^{1}⁄_{8}. The same is true for the anticlockwise direction. Adding the two probabilities gives a result of ^{1}⁄_{4}.”*

For a computer engineer, expressing real-world events mathematically is important. These are the skills that can be tested by this type of question on probability.

**How to Answer**

The key to answering this question is identifying every single situation that results in the coin coming up heads or tails and the associated probability. Once you’ve identified these situations, you’ll need to know when to add or multiply the probabilities.

**Example**

*“For the fair coin, the probability of getting heads twice is ^{1}⁄_{2}*

A data-heavy company like TikTok will want engineers who know how to properly interpret the results from data analysis. In this case, coefficients may represent different things for different datasets.

**How to Answer**

This type of question presumes you understand logistic regression and the difference between boolean and categorical variables when dealing with data. For a start, you need to know that the coefficient of logistic regression has a magnitude and a sign, and each has its significance.

**Example**

*“For boolean variables the closer the magnitude of the coefficient is to 1 the more effect it has on the outcome. A positive sign implies a positive influence while a negative sign implies the inverse. However, this interpretation shouldn’t be applied in the same way when handling categorical or continuous variables. This is why one-hot coding is used when fitting categorical variables to a logistic regression.”*

Data analysis is a useful skill for software engineers in companies like TikTok. You may not be an analyst, but you’ll probably still need to do some data analysis, in which case you’ll need to know the difference between these two models and when to use either.

**How to Answer**

This is a question on definitions so you can give a short response that correctly answers the question and demonstrates that you know how to apply the knowledge.

**Example**

*“Linear regression models assume there is a linear relationship between dependent and independent variables i.e. the model can be defined by a straight-line equation y=mo+m1X+e, where e is the error. It is used to predict the value of the dependent variable. Logistic regression is used to predict if a dependent variable belongs to either of two classes or categories. It is used to categorize data.”*

When developing machine learning models, it’s important to know how to interpret the data. This means knowing when a model that seems correct might be erroneous. In this case, the problem is detecting and correcting multicollinearity.

**How to Answer**

There are established methods of detecting multicollinearity between variables. The question of how to deal with it when you detect it depends on how severe it is.

**Example**

*“The variance inflation factor (VIF) is used to express the degree of correlation between variables. This is typically computed by the statistical software or package and presented in the summary of models. Thus, it’s not necessary to take extra steps to detect it. When the VIF is between 1 and 5, it’s not necessary to make any changes. If it’s greater than five, it may be necessary to drop or combine some variables. Other regression methods that cope with multicollinearity better can also be used instead of linear regression.”*

**More context:** The output should include the year, product_id, and average quantity of the product purchased per transaction that year. The output table should be sorted by year and product_id in ascending order. The value for avg_quantity should be rounded to two decimal places.

This question would likely be asked in a TikTok software engineer interview to assess your ability to work with large datasets and perform complex aggregations. It tests your SQL skills, particularly in grouping data, calculating averages, and formatting the output.

**How to Answer**

To answer this question, we need to apply an average function to the quantity for every distinct year and product_id combination. We can extract the year from the created_at column using the YEAR() function. We can use the ROUND() and AVG() functions to round the average quantity to 2 decimal places.

Make sure that we’re selecting from the transactions table. Finally, we make sure to GROUP BY both the year and product_id to get every distinct year and product_id combination.

**Example**

*“In this query, I would first extract the year from the transaction date to group the data by year and product_id. Then, I would calculate the average quantity of each product purchased per transaction for each year, ensuring that the average is rounded to two decimal places. Finally, I should order the results by year and product_id to provide a clear and organized output that could be easily interpreted for further analysis. This approach ensures that the data is both accurate and presented in a meaningful way.*”

**More context:** Consider the events table which contains information about the phases of writing a new social media post. The action column can have values post_enter, post_submit, or post_canceled for when a user starts to write (post_enter), ends up canceling their post (post_cancel), or posts it (post_submit). You can assume that a single user may only make one post per day.

TikTok wants to evaluate your proficiency in writing SQL queries to calculate key performance metrics, such as post-success rates, which are crucial for understanding user engagement and behavior. The question tests your understanding of how to filter and aggregate data based on specific conditions (e.g., actions taken by users) and to provide meaningful insights daily.

**How to Answer**

When answering this question, focus on clearly defining the metrics and logic before diving into the solution. Start by understanding what is being asked and think about how you can break down the problem into smaller, manageable parts. Emphasize the importance of grouping data correctly and ensuring that any joins or conditions applied make logical sense without complicating the query unnecessarily. Highlight the need to balance accuracy with simplicity, ensuring your approach captures the necessary details without introducing errors like double counting. Lastly, validate your logic before finalizing the solution.

**Example**

*“I would start by clearly defining the metric we’re trying to calculate—in this case, the post-success rate. I would consider how we could break this down into manageable steps, focusing first on identifying all the posts that were started and then filtering out those that were completed on the same day. I’d emphasize the importance of grouping by day to get accurate daily metrics and ensuring that any joins I use wouldn’t inadvertently multiply results or lead to double counting.*”

The way to showcase your skills and best qualities in an interview is through practice and preparation. There are a few ways you can prepare so that you can have a more positive experience at your upcoming TikTok interview.

Interviewing for a software engineer job at TikTok means answering a lot of questions. Practicing on similar questions will familiarize you with the concepts that are tested and show you how to approach such questions.

You can find many practice questions on Interview Query. These will give you a good idea of the types of questions you might be asked, tips on how to approach them, and sample solutions.

Think of interviews as an opportunity to highlight your best attributes, and tailor your preparation appropriately. Your interviewers are often future team members, and they will be trying to find out what it’s like to work with you. It is also a chance to gauge the culture and expectations of the company, you might discover that it is not an environment you are interested in being part of as you progress through the interview process.

TikTok likes to hire individuals who are passionate about the company and its products. The best way to demonstrate this is to research what the company is, what products it offers, recent trends in the app, in the industry, and competing products.

You can check out IQ’s blog section to read articles on industry trends, other people’s success stories, and more!

Interviewers are interested in the thought process you apply when solving a problem. Therefore, learn to demonstrate your thought process by thinking out loud. You should also communicate openly and ask for clarification to ensure you’re solving the correct problem.

Your knowledge of your fundamentals will likely be tested, so you may want to go over those basic building blocks a few more times. You may also be tested on information that appears on your resume, such as technologies you’ve worked with in the past.

Refresh your knowledge in various fields by visiting Interview Query’s Learning Paths section.

$183,836

Average Base Salary

$254,875

Average Total Compensation

Software engineers earn a base salary of $184,000 at TikTok according to IQ’s recent data. This puts it in the top 97% of companies when it comes to software engineer pay. Check out how this compares with other companies on IQ’s software engineer salary page.

Interview Query’s resources menu includes blog posts and a section on interview experiences, where you can learn about other people’s experiences or post your own. You can also join the Slack community and chat with fellow software engineers and other professionals.

You can find listings for software engineer roles on Interview Query by going to the Jobs Board in the Jobs menu. The results can be filtered by company and position to only show open software engineer positions at TikTok.

The key to a positive interview experience is making the right preparations. This TikTok software engineer interview guide aims to help you with that by showing you what the interviewers are testing for and how you can impress them when your time comes.

If you want to learn more about the TikTok-related content that we offer, be sure to check our **main TikTok Interview Guide**. We provide TikTok interview guides for other positions, such as machine learning engineer, data analyst, data engineer, and more. Be sure to check them out!

As a future software engineer, you’ve gotten off to a great start by reading this guide. Hopefully, it’s just what you need to close the deal and land that dream job at TikTok.