I had a campus interview with NVIDIA for the post of Tools Development Engineer at Pune. Following were the rounds,
Round 1: Written Test
In the written test there were 50 multiple choice questions divided into 3 sections, the time allocated was 60 min. No negative markings were there but there were sectional cut offs for every section.
There were 3 sections in the test
Section 1: 30 questions on C, C++, DS, Algorithms ( questions were like find out the output, which type of error occurred, flow of the program, memory management, pointers, array, structure, linked list, stack, BST, AVL trees, etc. )
Section 2: 10 questions on Operating System ( questions like memory management algorithms, deadlock, find process time, look-aside buffer memory, process scheduling, etc. )
Section 3: last 10 questions were Analytical, which include logical reasoning, number series, logical puzzles, etc.
Total 150 students were appeared for the written test out of which 31 were shortlisted.
Round 2: Technical Interview I
Before entering the room we had some talk, they were very cool!
- Tell me about yourself
- Asked questions from every section of my resume( mostly focused on projects )
- What is the booting process of a Linux operating system
- Questions on Android, how is the project structure, manifest file, life cycle and some tricky questions on android
- Puzzles lamp-bridge
- Write code for a tic-tac-toe game
- Write graphics program for a ball bouncing on a wall
- How to implement logcat of Android studio?
- What is CUDA? Write CUDA program to add two arrays by their index
- How many maximum threads can you create? What is a block? What is a grid?
- Concepts of C++ like Virtual functions, Inheritance, Constructors, static variables etc.
- Why we use virtual functions? How they are implemented?
- Questions on Hadoop
Out of 31, they shortlisted 9 people for second technical interview
Round 3: Technical Interview II
The interview was with a senior manager
- Start with projects discussions, asked me to show the code of my projects and explain it in detail.
- You have an application that writes 1 to 1000 in a file, write another application which will close the first application once the first application writes the numbers up to 100.
- Do you know Linux? (as I had mentioned it in my resume) write down basic commands
- Write a code for ls command (input was a directory name)
- Booting process in detail
- Can you change the grub? If yes then how?
- If you kill a parent process then what will happen?
- Write CUDA program for matrix multiplication? What are the different ways to do the same problem?
- How do we synchronize threads in CUDA?
- Is it possible to change the action of certain keys? if yes then how?
From 9 they shortlisted only 3 people for HR interview
Round 4: HR Interview
- How was the selection process?
- What is Nvidia? Who is the CEO? Basically the history of Nvidia
- Why do you want to join Nvidia?
- Ask me for which other companies from our campus you went for
- What are the things that you like about Nvidia?
- Asked about future studies. why do I want to work and not want to go for PG?
- Do you have any question for us?
All the 3 students got selected for NVIDIA and I was one of them.