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 = p.next;
               cnt++;
            }
            else if (p == NULL) {
              p = head;
              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.
  • 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 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.