Tip 1 : Must do Previously asked Interview as well as Online Test Questions.
Tip 2 : Go through all the previous interview experiences from Codestudio and Leetcode.
Tip 3 : Do at-least 2 good projects and you must know every bit of them.
Tip 1 : Have at-least 2 good projects explained in short with all important points covered.
Tip 2 : Every skill must be mentioned.
Tip 3 : Focus on skills, projects and experiences more.
There were 30 questions out of which 50% was based on JAVA and C++, the rest were from verbal and quantitative stuff.
This was a technical interview round with questions on DSA and DBMS.



This is similar to merge sort. Divide k arrays into two halves containing an equal number of arrays until there are two arrays in a group. This is followed by merging the arrays in a bottom-up manner.
Algorithm :
1) Create a recursive function which takes k arrays and returns the output array.
2) In the recursive function, if the value of k is 1 then return the array else if the value of k is 2 then merge the two arrays in linear time and return the array.
3) If the value of k is greater than 2 then divide the group of k elements into two equal halves and recursively call the function, i.e 0 to k/2 array in one recursive function and k/2 to k array in another recursive function.
4) Print the final array.
Time Complexity: O( n * k * log k).
Space Complexity: O( n * k * log k).



Infix expression: A + B * C - D
Postfix expression: A B + C D - *
1. Operators will only include the basic arithmetic operators like '*', '/', '+', and '-'.
2. The operand can contain multiple digits.
3. The operators and operands will have space as a separator between them.
4. There won’t be any brackets in the postfix expression.
Algorithm :
1) Create a stack to store operands (or values).
2) Scan the given expression and do the following for every scanned element.
…..a) If the element is a number, push it into the stack
…..b) If the element is an operator, pop operands for the operator from the stack. Evaluate the operator and push the result back to the stack
3) When the expression is ended, the number in the stack is the final answer
Write a SQL query to create table.
SQL CREATE TABLE statement is used to create table in a database.
If you want to create a table, you should name the table and define its column and each column's data type.
SYNTAX :
create table "tablename"
("column1" "data type",
"column2" "data type",
"column3" "data type",
...
"columnN" "data type");
What are nested tables?
Nested tables are single-dimensional, unbounded collections of homogeneous elements.
First, a nested table is single-dimensional, meaning that each row has a single column of data like a one-dimension array. Second, a nested table is unbounded. It means that the number of elements of a nested table is predetermined.
Third, homogeneous elements mean that all elements of a nested table have the same data type.
What are views?
Views in SQL are kind of virtual tables. A view also has rows and columns as they are in a real table in the database. We can create a view by selecting fields from one or more tables present in the database. A View can either have all the rows of a table or specific rows based on a certain condition.
Technical round with questions on OS and OOPS mainly.
Function ‘sum’ which takes arguments, such that if both args are:
int : does integer addition
float : does float addition
string : concatenates them
Write a program in ‘C’ that does the same?
In C++, concept of templates can be used to design such a function.
A template is a simple and yet very powerful tool in C++. The simple idea is to pass data type as a parameter so that we don’t need to write the same code for different data types.
Code :
template
T addTwoItems(T x, T y)
{
return x + y;
}
What is a semaphore?
Semaphore is simply a variable that is non-negative and shared between threads. A semaphore is a signaling mechanism, and a thread that is waiting on a semaphore can be signaled by another thread. It uses two atomic operations, 1) Wait, and 2) Signal for the process synchronization.
A semaphore either allows or disallows access to the resource, which depends on how it is set up.
Difference between Process and Thread
1. Process means any program is in execution.Thread means segment of a process.
2. Process takes more time to terminate. Thread takes less time to terminate.
3. Process takes more time for creation. Thread takes less time for creation.
4. Process also takes more time for context switching. Thread takes less time for context switching.
5. Process is less efficient in term of communication. Thread is more efficient in term of communication.
What is mutual exclusion?
The primary task of process synchronization is to get rid of race conditions while executing the critical section.
This is primarily achieved through mutual exclusion.
Mutual exclusion is a property of process synchronization which states that “no two processes can exist in the critical section at any given point of time”. The term was first coined by Dijkstra. Any process synchronization technique being used must satisfy the property of mutual exclusion, without which it would not be possible to get rid of a race condition.
Managerial round with typical behavioral problems.
1. Tell me about yourself.
2. Where do you see yourself in 5 years?
3. Why eBay?
Tip 1 : The cross questioning can go intense some time, think before you speak.
Tip 2 : Be open minded and answer whatever you are thinking, in these rounds I feel it is important to have opinion.
Tip 3 : Context of questions can be switched, pay attention to the details. It is okay to ask questions in these round, like what are the projects currently the company is investing, which team you are mentoring. How all is the work environment etc.

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