Interview experience with NCR Corporation




DISCLAIMER: It's going to be a long post, read it when you have free time.


I am here again to share my interview experience with NCR Corporation. The interview was held at their Hyderabad, India office on 3rd November 2019.

Position: Software Engineer
Package: 7 LPA

Before I start describing the interview process let's have a look at how I got till the technical rounds.

Interview Process:
Round 1: HackerEarth Codewars challenge consisting of 10 MCQ's and 2 coding questions.
Total Marks: 232 out of which 32 were for MCQ's and 200 for coding.
The time allowed: 2.5 hrs.

The coding questions were as below:
Q1. Given a list of bowlers who bowl n overs determine whether the rules of the match are followed.
The rules of the match are :
If there are n overs then 
    each bowler can bowl at max n/5 overs if n is divisible by 5.
    each bowler can bowl at max n/5 overs if n is not divisible by 5, then there can be at least p bowlers where (p=n%5) bowlers who can bowl at max n/5+1 overs.
This was pretty easy and can be simply solved using hashmaps and if conditions.

While I was solving the first question the server went down and there was no way I could continue the test apart from reloading. I took the risk and thankfully the test didn't end.

I started panicking because I already wasted around 45 minutes waiting for the server to reconnect.
Then my friend's words motivated me to be cool and I solved the first question within ten minutes.

Q2. Given two numbers A and B find any number X such that X contains the same number of bits set like B and A^B should be minimum.

Example:
A = 3 B = 5
X will be equal to 3 since 3 has 2 bits set so does 5 hence you get minimum at 3^3 = 0.
Similarly, we have to handle various cases. It took me around 30-45 minutes to crack the code for optimized logic. If I wrote Bruteforce it gave me TLE so I had to think a bit to get to optimized code.

29th October I got the mail from Hackerearth stating that I am shortlisted but that doesn't guarantee an interview call from NCR. They will take some time to review the resumes and shortlist according to their requirements. On 31st October I received an email that I have NCR interview on 3rd November.

So the first and second rounds can be taken as online rounds followed by resume shortlisting.

The backstory of two days before the interview day. I had one interview on 1st November, I came back home at around 09:00 p.m. at night and was hell tired that evening. The next day morning I had an internal project review which demanded us to complete the entire documentation which I was doing parallelly along with interviews(thanks to Ajay -my teammate for taking the load of completing documentation) and I had to attend the college. On the very same day, I had another interview scheduled so somehow I rushed from college after finishing the review and came as early as possible. I had a Skype call scheduled at around 2:00 p.m. but I was made to wait till 6:00 p.m. and that 6 somehow turned 8 and the interview started. I had ended my Skype video at around 9:15 p.m.
Moreover, I really had a bad stomach that day. I was not in a position to get up from my chair on 2nd November. My mom scolded me not to attend the NCR interview scheduled the next day that was 3rd November. I generally sleep at 2:00 a.m. in the morning and last three days I was waking up at around 5:00 a.m. in the morning and I was literally sleep deprived.

Coming to the interview day...........

I woke up at 5:00 a.m. scheduled a cab and found that it got canceled. I booked another cab available and started at 7:00 a.m. at home. I reached the venue at 7:40 a.m. where I was supposed to report at 10:00 a.m. As I told the backstory I didn't get time to revise any of the concepts I thought to make good use of the time I have instead of cursing the security guard to make me wait for 2.5 hrs. In that time I started revising OOPS concepts and JAVA basics(cause I had lost touch with JAVA) from Javatpoint. Also, I read about the company in the meantime. I was asked to wait in the cafeteria for my turn.

The official from NCR walked in and asked girls to come upstairs at around 11:30 a.m.I entered for my technical round 1 at around 12:00 p.m. and I was so hungry as I entered the interview room.

There were two people interviewing me: A smart and handsome guy aged somewhere between 25-30 and a beautiful lady with the cutest face on earth aged somewhere between 22-24.

The questions asked to me were:

1. What is OOPs? Why OOPs?
2. Explain any one OOPs concept?
3. Give a real-life scenario where the Inheritance concept can be found and give me the code snippet for it.
4. Concepts such as abstract classes, interfaces were asked and the differences between them. Applications of both.
5. Concept of dynamic dispatch.
6. How can we access the overridden method of parent class?
7. Difference between compile time and run time polymorphism with code snippets and dry run.
8. How does a new object gets created and where is the object stored in memory? Where is the reference variable stored and where is object data stored.
9. How does JVM work?
10. Given an example scenario of school and classes use abstract classes to design them
11.Illustrate how getters and setters methods are used and when they are used.

They then asked me how good I'm in C and rate myself. I gave 6 or 7 ratings.She started asking me C and C++ questions.

1. What are the storage classes available? Explain.
2. What is a constructor, what is destructor and how do they work?
3. What is copy constructor and does Java support it? Code snippet for copy constructor. I said I don't remember the syntax and she was ok with that.
4. Can constructors be overloaded? If yes, how? Give an example code snippet.
5. What is the difference between structure and class?
I gave a simple example that classes have methods and instance variables. She asked me something else and in the process of explaining her, it struck my mind that variables in the structure are public and classes can have access specifiers and told her. She said I was expecting this answer from you. You took time but that's alright. :)


Moving to data structures and algorithms she gave me a question:

1. Given a linked list's node reference delete that node. You don't have a head pointer how would you do.
I told my approach  similar to this: https://www.geeksforgeeks.org/in-a-linked-list-given-only-a-pointer-to-a-node-to-be-deleted-in-a-singly-linked-list-how-do-you-delete-it/

She later asked me to write code and explained. She modified the question to the circular linked list. I showed how my code works for the circular linked list as well. She was satisfied, then she asked me how do you do it without making a copy of the data. I told her if we assume it to be a single linked list, it's not possible for a doubly-linked list we have left pointer and right pointer which can actually be changed directly without copying. She was satisfied.

2. She asked me to design a queue using a stack. Actually, I knew this answer and told her we can design it using two stacks. So she said ok you know the answer let's keep it aside then.
https://www.geeksforgeeks.org/queue-using-stacks/

3. She asked me which sorting algorithm is the best according to you. I told her mergesort and quicksort. She asked me which one would you prefer and why. I told her quicksort. She asked me to write code. I asked her permission to write in C cause I wasn't confident enough in writing code in Java.
She gave me a warning that it should pass all the test cases, the program should be explained with multiple test cases and also the time complexity should be told for each test case.

I did write the perfect quick sort code and then started explaining to her all the things she asked for and she was satisfied.
Next, they moved to OS questions
1. What is deadlock? Explain a real-time scenario where you faced a deadlock while developing your projects. Also, explain how did you solve it.
2. What is scheduling? How processes are scheduled? What are the different algorithms?
3. Explain what is Round-robin scheduling.

Next, the lady had a look at my resume and asked me whether I can explain her few things like:
1. Why did React come into existence and why do we prefer to use react over Javascript.
2. I mentioned that I used API calls and wrote the TODO project and used JSON web token authentication. I was asked to mention working.
3. Tell something about life cycle methods of React.
4. Explain about JSX and ES6. I didn't know much about them I told her what all things I knew.
5. How JSX gets converted to javascript in browser.
6.Arrow function in ReactJs.
7. Write code snippet of a simple react component.

Next, they asked me a few questions on why I wrote projects in Django and what is the architecture it follows. I was also asked to explain it.

Next, the guy started asking me DBMS questions.
1. He asked me what databases have you worked on?
2. What type of database is MySQL? I answered RDBMS. He asked me to show the database design of a few of my projects. I did. Later he asked what is meant by RDBMS and how do you establish relationships I was explaining the same thing again later I told him through primary and foreign keys and he said this is what I was expecting for. He asked me whether I know what is NoSQL.I gave him the definition which I knew and he was satisfied.
3. He asked me to show the database design of another project and asked me how did you normalize the tables.
4.What are wildcards in dbms?
5. Explain normalization. When I was giving him definitions parallelly I showed him using tables and he was really happy that he asked "Man, what is your score in B.Tech. you aren't taking even a single second to answer back to the questions we have been asking till now". And his colleague, that is the lady said "she is a 10 pointer dude" .:P

By this time it was already 1 and the monsters inside my stomach started shouting and they could hear it loud. Later they offered me cookies and water to calm them but I refused.

Then the guy asked me to design a database for the scenario where there are professors/mentors and there is student/mentee. Find out the professors/mentors who don't have a student/mentee or the student/mentee who doesn't have a professor/mentor. He asked me to design in whichever way I want but that should be normalized and I had to explain to him how would I be feeding the database with data as well. He seemed pretty satisfied with the design and asked me to write queries for the same.


Then the lady asked me whether I am tired and would I like to leave or can go for answering a few logical questions. I said I will answer them.

She asked me the question, where there are 3 boxes. One box has entire blue balls, one has green balls, one has blue and green mixed and all of them are incorrectly labeled for sure. She asked me to pick only one ball and determine all the three labels correctly. I was thinking and the guy said "Sirisha, can you think out loud about your thought process I mean to speak to us you are going in right direction, tell us what you are thinking".Later they told "you are going in the right direction think " and kept giving me hints finally I got logic within 2 minutes.
They both were happy and told me that they never met a person who had such a long list of achievements. Then he started discussing why I moved to Hyderabad from Gujarat, why I joined Martin's though I had good knowledge and marks, what was my Eamcet rank. They then discussed my achievements section and asked me how do I manage my time etc. This round was less of an interview and more of a discussion. I was satisfied with my performance here, I don't know how many of my answers were correct but I gave every answer confidently.

Lastly, they asked any questions for us and I was so relieved. I asked about the company and I said a few things which I knew. She asked me to wait outside for a few minutes. It was 1:40 p.m. by then. After I waited for 2 minutes , Ann came and asked me to report back after having lunch and informed me about my selection for further rounds.

While I was having lunch, Vishnu was astonished that I was having my lunch box with me and informed me that the office has arranged lunch. I told him I generally don't have food outside and continued eating.

Post lunch I was the first person to enter the second technical round. Here also there were two people, a senior guy aged somewhere around 35 to 40 and a young handsome guy. They were so friendly with me I felt that it was just a technical discussion and not an interview.
The first question asked to me was:

1. Tell me something which is not there in the resume.
2. Explain OOPs concepts. Why are they important?
3. Write code for multiple inheritance. I wrote using interfaces.
4. What is meant by copy constructor?
5. What is constructor overloading and how is it different from function overloading?
6. When is a function said to be overloaded?
7. Why are two functions having the same number of arguments and the same type of arguments are not said to be overloaded if they differ in return type?
8. Gave me a logical question of finding out which switch belongs to which bulb if there are 3 bulbs in a room with no windows and you are allowed to walk into the room only once.
9. He then asked me a few questions on my project
10. The last question to me was given a number check whether the third bit from last is set or not.
I first gave Bruteforce of converting to binary and checking then I did the right shift twice and used & with 1 to check. The last approach I gave was performing bitwise & of the number with 4 and he was satisfied.

Lastly, he asked me "Do you have any questions for me".I asked him where can I improve and he said whatever you learn, try implementing them, understanding the implementation details by running would give you more knowledge than just reading theory. This is not a suggestion given only to you, I generally suggest this to each fresher who poses this question to me. It's a little difficult for me to answer it specifically for you ".Then he asked me to wait outside for a few minutes.

I went and sat beside an old guy who was hooked to his computer screen and was working. He went in to meet this guy who took my technical round 2 and I could overhear their convo as I was sitting just outside their room. The guy who took my TR-2 was saying " She is not confident in Java she said but she wrote absolutely correct code in Java".

Then that old guy came out of the cabin and informed me to follow him. Little did I know that he was the HR manager over there. I came to know when I saw the nameplate on the door.

HR asked me the first question "Tell me about yourself". I repeated the same speech again for 2 minutes. He was surprised and asked me whether I was interviewed by Shwetha and he checked my performance chart on which her name was present. And he told me that during lunch Shwetha was discussing me and my activities with him. He also said that she told " I interviewed a person today who is into so many things. I never met a person with such a list of achievements".I was happy that my list of achievements was being counted as many people used to comment on me that you are into so many things you can never excel in something. Concentrate on a single thing or else you won't get a job but I never thought about them and I kept doing what all things I could do.

In this round, HR was speaking about the company and I was listening to him. He asked me a few things about Mission R&D, Paintings, NCC career, School Vice Captainship, Internships, Projects, etc. I told him that I run a business and he asked me to show my Instagram page. Later he told me that he was an NCC cadet too in the Airforce wing during his school days.

He asked me being an NCC cadet I learned to live independently so would I prefer working independently or in a team. I answered it this way "Being independent gives you more confidence and self satisfaction but then if you work in a team and are stuck in a problem, your teammate can be either a problem solver if not at least he/she would be the person who can show you the way to reach the solution". I also gave him an example from MRND summer camp and he was satisfied.

He then told me about the company for about 20 minutes.

Later he asked me few more questions from my resume and the round ended with him saying that "You would prove to be an asset to us if you join and of course NCR would give you so many opportunities to learn".He then asked me to wait in the cafeteria. I had mentioned in the HR round that I came alone and there is a transport problem and he was so understanding that he made sure that I could leave in another 15 minutes. So sweet of him :).

Then I was called for further discussion . I was asked the same question again " Tell me about yourself". Later I was asked to submit my photographs and they showed me the kiosk machines. I never saw such kind of devices. He then later showed me the R&D lab from outside and told you will be working on these if you get into NCR. He asked me about my queries and I asked him about training, joining, etc.

He then told the results will be announced within a day and told me to leave.

The guy who came to give me access asked me to gift him a portrait. I said "Sure, but please do send me the picture so that I can draw".He said, "You will be joining NCR in January, we can get pictures clicked together". I kept a puzzled face and he said: "Unofficially selected, wait for the official results, have a good day."

I got official selection mail on 5th November.

I was really jumping out of happiness. It was 4:00 p.m. by the time I came out of office.

So what made me be selected though I wasn't properly prepared for the interview?

I kept preparing for two months(including the work I did in the previous two years be it coding, project or other activities), my confidence, and never give up attitude even though I kept facing rejections.

Above all this, Coder's club and MRND have been the greatest support system and driving strength behind my selection.
Abhijith Ravuri has been the best guide  for me. Without his guidance, I would not get placed into product companies.

Comments

Post a Comment

Popular Posts