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) {
        Node p = head;
        int cnt = 0, i = 0;
        boolean flag = false;
        while (true) {
            if (!flag && p != null) {
               p =;
            else if (p == NULL) {
              p = head;
              flag = true;
            else if (flag) {
              if (i < cnt / 2) p =;
              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);

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.
  • First they asked me about work experience. Since I had worked with C++, they asked me about compilation process from start to end.
  • 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

My Personal Notes arrow_drop_up

If you like GeeksforGeeks and would like to contribute, you can also write an article using or mail your article to 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.