Tip 1: Follow resources for System Design and books on Cracking the System Design Interview.
Tip 2: Complete more than 300 standard coding questions from each topic.
Tip 3: Read engineering blogs from various companies like Netflix, LinkedIn, Slack, etc.
Tip 1: Have a complex full-stack project on your resume using the latest technologies.
Tip 2: Mention system design in skills.
The online assessment comprised three LeetCode-style questions of easy to medium difficulty. The link remains active for 24 hours, allowing candidates to take the assessment at their convenience within that timeframe.



The first problem is presented in a narrative format. However, at its core, you are tasked with arranging three balls of different colors, symbolized by 0, 1, and 2, using a fundamental sorting technique.
Step 1: Initially, I attempted to utilize the Arrays.sort() function.
Step 2: Fortunately, one of the test cases resulted in a Time Limit Exceeded (TLE) error.
Step 3: I then devised a solution employing three pointers.
Step 4: You can find the solution here :(https://leetcode.com/problems/sort-colors/solutions/3464652/beats-100-c-java-python-javascript-two-pointer-dutch-national-flag-algorithm/)



1. First, check if the provided path is empty or null. If it is, return the root directory "/".
2. Split the input path by "/" into an array of strings. Iterate through each part of the path.
3. If a part of the path is empty or represents the current directory ".", skip it. If it represents the parent directory "..", pop the last directory from the stack if it's not empty.
4. Use a stack to maintain the canonical path. Push valid directory names onto the stack.
5. Iterate through the stack and build the final path by appending "/" followed by each directory name.
6. If the final path is empty, append "/" to represent the root directory. Return the constructed path as a string.
Write a Program to determine whether a given number N is a happy number.(Link)
A digit is called happy if the sum of the square of the digit gives 1 after the sequence of steps, and in each step, the number is replaced by the previous sum of the square. Let's understand it with an example:
13-> 1^2 + 3^2 = 10
10-> 1^2 + 0^2 = 1
Above, we see that the number eventually gives us 1 as the output, and hence the number 13 is a happy number.
1. Check if the input number is already equal to 1. If it is, return true because 1 is already a happy number.
2. Create a HashSet to store the calculated numbers during the process. Also, set a boolean variable isCycle to false.
3. Add the initial number to the HashSet and enter a while loop until the number becomes 1.
4. Within the loop, calculate the sum of the squares of each digit of the current number.
5. If the calculated sum is 1, return true because the number is happy. If the HashSet already contains the calculated sum, it indicates a cycle, so return false.
6. Add the calculated sum to the HashSet and update the current number to the sum for the next iteration.
7. If the loop exits without encountering 1 or a cycle, return true, indicating that the number is a happy number.
Timing was 4:00 PM Afternoon in an Online mode.



Given a String and rowsCount as 3, print the string in a zig zag order.
For example : s = "PAYPALISHIRING", rowsCount = 3
Output: "PAHNAPLSIIGYIR"
I have already solved the question earlier, so i started with the good approach.
1. Create a HashMap to store characters for each row. Initialize the HashMap with empty strings for each row.
2. Iterate through each character of the input string.
3. Determine whether to move down or up based on the current row index (i) and the number of rows (numRows).
4. Append the current character to the corresponding row in the HashMap.
5. After processing all characters, concatenate the characters from each row of the HashMap to form the final output string.
Now interviewer asked me to further optimize the code. But i struggled to have an another optimal approach although i have solved the question so i was qualified.
Timing was 3 PM afternoon, Interview was taken by a Senior Software Engineer at Nutanix. It's a full stack round.
Create a UI for To Do list Application from frontend using React.
1. I employed React JS alongside an online Codebox to craft a user interface.
2. To enhance code clarity, I developed several components such as ItemComponent, DetailsComponent, and Modal Component.
3. Leveraging the useState hook, I stored the items of the to-do list as an array.
4. Each item includes a delete button to facilitate its removal from the list.
5. Adjacent to the input box, there is an Add button to effortlessly insert new items.
Design Backend as well as Database (SQL / NOSQL ) for the above application.
1. I went with NoSQL Database (MongoDB) as we don't really required any Transaction Power here or Normalization.
2. I started with the Below API's
GET /todos?id=1
POST /todos/
DELETE /todos?id=33
3. Later Interviewer asked me for corner cases like if id is not there in URL how to parse it or how can we make sure only authorized user can delete a todo. etc.
Now Interviewer asked me to implement a feature of concurrent editing of a todo or what happens if multiple user clicks on same todo to delete it.
While I struggled to provide a comprehensive answer, I'm inclined to think that web sockets could prove beneficial for facilitating concurrent editing of to-do list items.
Additionally, we could consider employing transactions in MongoDB or implementing an idempotent API to mitigate any potential inconsistencies that may arise if a user clicks a button multiple times.

Here's your problem of the day
Solving this problem will increase your chance to get selected in this company
What is recursion?