Tip 1 : Practice at least 300 questions
Tip 2 : Have 2 projects on your resume.
Tip 3 : Upload projects and add a link in resume. update readme of project highlighting how to setup the project
Tip 1: 1 or 2 pages max
Tip 2: Mention frameworks for each project put up on the resume
2 DSA problems and 30 MCQ's
Logical reasoning and aptitude
Number Of MCQs - 30



For a (6 x 6) board, the numbers are written as follows:

You start from square 1 of the board (which is always in the last row and first column). On each square say 'X', you can throw a dice which can have six outcomes and you have total control over the outcome of dice throw and you want to find out the minimum number of throws required to reach the last cell.
Some of the squares contain Snakes and Ladders, and these are possibilities of a throw at square 'X':
You choose a destination square 'S' with number 'X+1', 'X+2', 'X+3', 'X+4', 'X+5', or 'X+6', provided this number is <= N*N.
If 'S' has a snake or ladder, you move to the destination of that snake or ladder. Otherwise, you move to S.
A board square on row 'i' and column 'j' has a "Snake or Ladder" if board[i][j] != -1. The destination of that snake or ladder is board[i][j].
You can only take a snake or ladder at most once per move: if the destination to a snake or ladder is the start of another snake or ladder, you do not continue moving - you have to ignore the snake or ladder present on that square.
For example, if the board is:
-1 1 -1
-1 -1 9
-1 4 -1
Let's say on the first move your destination square is 2 [at row 2, column 1], then you finish your first move at 4 [at row 1, column 2] because you do not continue moving to 9 [at row 0, column 0] by taking the ladder from 4.
A square can also have a Snake or Ladder which will end at the same cell.
For example, if the board is:
-1 3 -1
-1 5 -1
-1 -1 9
Here we can see Snake/Ladder on square 5 [at row 1, column 1] will end on the same square 5.
Create an explicit map and insert the ladder, snake jumping possibilities.
Now declare a queue and a variable level incremented with 1.
Now push 1 to queue and start doing a level order search.
Calculate the size of the queue and traverse on each possible value.
The new position will be x + i if x+i is a value in map then we move to that like pos = m[x+i].
If the new value is n then we return the variable level.
Otherwise if the new position was not visited before then we mark it visited and push it into the queue.
If we are out of queue then we return -1.



Dynamic programming approach
1) Reverse the given sequence and store the reverse in another String
2) Now find the longest common subsequence between the 2 strings
Face to face round
Design the HashMap API in java.
Tip 1 : Create an interface highlighting the methods that the HashMap exposes.
Tip 2 : Create a class that extends this interface.
Tip 3 : Use OOPS properties and properly identify access modifiers for each of the methods in the class.
Design the database for a university containing entities Course, Students and Teachers.
Tip 1 : Clearly mention the attributes of each of the entities
Tip 2 : Mention the primary key of each attribute
Tip 3 : Map the FK and PK references between the entities and highlight the relationship between the 2
The interview was a senior engineer having been at Citrix for 3 years




1. Make in-place changes, that is, modify the nodes given a binary tree to get the required mirror tree.
Recursive solution
1) Recursively call function on both left and right subtree
3) Finally assign left child to right and right child to left using a temp variable
Managerial round.
Culture fit check.
Was more of a conversation than interview

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