# Multi Commodity Exchange (MCX) Interview Experience

Round 1: Telephonic interview

• Describe yourself – what is your current role, projects which you are working on in current firm and technologies used.
• He asked me if I knew Java. I said no professional experience, but know core Java to a good extent.
• Tell some Java 8 features – I said Streams and tried to explain about it. Next I told about default methods in interfaces.
• He asked me if I knew how Streams worked internally. I say I didn’t knew.
• About lambda functions, what they are – I told they are anonymous functions which are used when we don’t want to create a separate function which won’t be used a lot of times. Gave an example and stated that lambda function is a concept from functional programming (which I didn’t knew much about).
• Explain run time and compile time polymorphism.
• Explain what is encapsulation in OOPS.
• What is meant by abstraction? Difference between abstract class and interface.
• Have you used multi-threading in your firm? Give an example where you have used (He wanted example from projects I worked on in current firm).
• Given a singly-linked list of odd length, find the mid-point in it i.e. find the node which is the middle of the list. He said I can’t use more than 1 loop.
My solution (inefficient, but uses just one loop):

```int getMiddleValue(Node head) {
int cnt = 0, i = 0;
boolean flag = false;
while (true) {
if (!flag && p != null) {
p = p.next;
cnt++;
}
else if (p == NULL) {
flag = true;
}
else if (flag) {
if (i < cnt / 2) p = p.next;
else return p.val;
}
}
}```

Optimal solution: Use two pointers, one pointer jumps with distance 1, other pointer jumps with distance 2. When other one reaches the end of list, first will be at middle.

• Check if a number is prime without using modulo, division or multiplication operators. Any number of loops is allowed.
Hint: Division is just series of subtractions. Solution: Find remainder by repeatedly subtracting. When number becomes negative, divisor – number is the remainder.

```public int getRemainder(int number, int divisor) {
while (number >= 0) {
number -= divisor;
}
return divisor - number;
}```
• Explain recursion. What care must be taken when using recursion? Base case to break out of recursion. What data structure recursion uses? Stack. Given a function display with a single argument n. Print numbers from 1 to n using recursion. Hint: Stack.
```public void display(int n) {
if (n == 0) return;
display(n - 1);
System.out.println(n);
}```

Round 2: Face-to-face interview

• Describe yourself.
• Questions on resume, work in current firm, technologies used. I had worked with C++, so they asked if I was comfortable with Java.
• Questions on some projects. In one project I said I had used Naive Bayes and they asked me to write formula.
• Did you use interfaces / inheritance in project? I said no nor inheritance.
• What is encapsulation? Do you know multi-threading? I said yes since I had worked with multi-threading in C++ and said it is not difficult in Java.
• Difference between Array and ArrayList.
• Shift an array given shift value in reverse direction or anti-clockwise direction.
• Whether I knew SQL and how much I knew it.
• They asked if I was comfortable to write complex queries which involved procedures, joins, etc.
• How good are you with people? Working in a team? Do you like challenges and can handle them? Whether you are the person who likes challenges or just think of it as burden. I said I am partly both, they laughed.
• Whether you will like working on projects from scratch? I said I may require some assistance.

The interview lasted hardly 30 mins.

Round 3: Face-to-face interview

• First there was an interaction with one person in a cabin. She asked question about education, work experience, projects worked. She asked current and expected CTC. They said if I don’t get current year’s increment on time then they will consider my last updated salary. I was a bit dissatisfied after hearing that.
• Then, she took me to other cabin where four interviewers were already there.
• They said the role was Java so asked me to rate my knowledge from 1 – 10. I rated 7 so they asked why and I said I know core Java but there still may be many concepts which I am not aware of.
• They asked where I have used Java, I said in one project and occasionally in competitive programming.
• They asked about socket programming and steps. As I was telling the steps, they asked something about file descriptor and socket. I had never used file descriptor along with sockets in Java. Later I found out there was a separate class FileDescriptor in Java SE.
• They asked if I had any UI experience I said had worked with Java Swing on Netbeans. They asked if I had Angular JS experience, I said no, but knew basic web technologies.
• They said I can leave for the day then.

Again, the interview lasted hardly 30 mins.

#### Round 4: Telephonic interview

• Describe yourself and describe your work.
• How low latency was ensured in the projects in company?
• Difference between OOPS in C++ and Java.
• Why looking for change in job?

Got an offer after few days.

Write your Interview Experience or mail it to contribute@geeksforgeeks.org

My Personal Notes arrow_drop_up

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.