Tip 1 : work in projects and gain some experience
Tip 2 : solve coding questions as much as you can
Tip 1: mention all your skills set
Tip 2: mention your project link
My 1st round, in this round I got asked about my previous experience and 2-3 simple coding questions.



For the given array [5, 8, 4, 9]
The sum of the elements of the array will be
5 + 8 + 4 + 9 = 26.
Since 26 is not a single-digit number, we will again take the sum of the digits of 26.
2 + 6 = 8.
Now 8 is a single-digit number. So we will stop here and return 8.



If the given string is: STR = "abcde". You have to print the string "edcba".
Try to solve the problem in O(1) space complexity.
1. Declare a string variable to store the input string.
2. Use the reverse() function to reverse the string in-place.
3. Print out the reversed string.
My 2nd round of interview where I was asked about my previous projects, what was my roll, what types of work I was doing etc and coding questions also are there



1. Push(num): Push the given number in the stack if the stack is not full.
2. Pop: Remove and print the top element from the stack if present, else print -1.
3. Top: Print the top element of the stack if present, else print -1.
4. isEmpty: Print 1 if the stack is empty, else print 0.
5. isFull: Print 1 if the stack is full, else print 0.
We perform the following operations on an empty stack which has capacity 2:
When operation 1 1 is performed, we insert 1 in the stack.
When operation 1 2 is performed, we insert 2 in the stack.
When operation 2 is performed, we remove the top element from the stack and print 2.
When operation 3 is performed, we print the top element of the stack, i.e., 3.
When operation 4 is performed, we print 0 because the stack is not empty.
When operation 5 is performed, we print 0 because the stack is size 1, which is not equal to its capacity.
1. Declare an integer array to store the stack elements and integer variables to keep track of the stack size and top index.
2. Define push() and pop() functions to add and remove elements from the stack respectively, and update the size and top index accordingly.
3. Print out the stack elements after performing some operations.
In my 4th round of interview, it was about 40 minutes and I was given questions from system design and data structures and algorithms
Design a chat application for a large company with thousands of employees.
1. Define the application requirements, such as the ability to send text and multimedia messages, support for groups and channels, and real-time notifications.
2. Determine the system architecture and components, such as a front-end client, a back-end server, a database, and a message broker for pub/sub functionality.
3. Choose appropriate technologies for each component, such as React for the client, Node.js for the server, MySQL for the database, and RabbitMQ for the message broker.
4. Consider scalability and performance factors, such as horizontal scaling of the server, caching of frequently accessed data, and efficient message delivery mechanisms.
5. Define the security measures, such as encryption of data in transit and at rest, access control using user authentication and authorization, and monitoring and logging of user activity.
6. Conduct testing and debugging to ensure the application meets the requirements and functions properly.
7. Continuously monitor and update the application to address any issues or add new features as needed.



1. Constructor: It initializes the data members as required.
2. enqueue(data): This function should take one argument of type integer. It enqueues the element into the queue.
3. dequeue(): It dequeues/removes the element from the front of the queue and in turn, returns the element being dequeued or removed. In case the queue is empty, it returns -1.
4. front(): It returns the element being kept at the front of the queue. In case the queue is empty, it returns -1.
5. isEmpty(): It returns a boolean value indicating whether the queue is empty or not.
Query-1(Denoted by an integer 1): Enqueues integer data to the queue.
Query-2(Denoted by an integer 2): Dequeues the data kept at the front of the queue and returns it to the caller, return -1 if no element is present in the queue.
Query-3(Denoted by an integer 3): Fetches and returns the data being kept at the front of the queue but doesn't remove it, unlike the dequeue function, return -1 if no element is present in the queue.
Query-4(Denoted by an integer 4): Returns a boolean value denoting whether the queue is empty or not.
1. Define a struct to represent a queue node with fields for the node value and a pointer to the next node.
2. Declare two node pointers to keep track of the queue front and rear.
3. Define a function to add a new node to the rear of the queue and another function to remove the front node.
4. Print out the queue elements after performing some operations.



The given linked list is 1 -> 2 -> 3 -> 4-> NULL. Then the reverse linked list is 4 -> 3 -> 2 -> 1 -> NULL and the head of the reversed linked list will be 4.
Can you solve this problem in O(N) time and O(1) space complexity?
1. Define a struct to represent a linked list node with fields for the node value and a pointer to the next node.
2. Declare a node pointer to keep track of the current node, another node pointer to keep track of the next node, and another node pointer to keep track of the previous node.
3. Use a while loop to iterate through each node in the linked list and reverse the links by updating the next pointer of each node to point to the previous node.
4. Print out the reversed linked list.
This was my last round of interview which was HR round.
1. Where do you see yourself in 5 years?

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