- Published on
Nvidia Interview | OFF Campus | 2023
- Author
- Shared Anonymously
Role : System Software Engineer
YOE: Internship(6M + 2M + 6M)
Batch: 2023
I applied through the company portal on Workday . First time got test link after applying through Workday :)
Online Assesment:
2 Coding ques easy - medium
C++ Output Ques
OS MCQ (Hard) COA MCQ(Medium)
Result of OA was attached to the next interview invite , Got 178/185.
First Interview Round:(1.5H)
Interviewer Joined early and started he said he had reviewed my resume and started with a casual discussion about my competative programming background and later moved on to my interests . He then asked what do i know about GPU's and thier role in our computers significance and then we had a good discussion around 5 minutes . He then told me interview would be focued mainly on C++ and OS.
- Started with a Bit Manipulation program to reverse bits in range l to r of integer in O(1).
- Then Some hard output question involving pointers and later asked to code to check whether a c++ compiler is using little endian or big endian.
- Moved to OS and asked questions on Cache , Threads , RAM and then discussed Paging and conversion of LA -> PA
- He again moved on to output questions and asked some difficult ones , sharing one interesting one below:
int a = 10;
printf("%d %d %d %d %d\
", a++, ++a, a++, a++, ++a);
Output: 14 15 12 11 15
- Finally asked basic dsa question to reverse LL but told to write everything from scratch.
This was one of the best interviewer I have ever met and although I was not able to solve some output questions the round went well.
Second Interview Round:(1.5H)
There were two interviewers first one started with their intro and then asked mine and then directly jumped to OS .
Asked some ques about sempahore and then told me to write code to print 1 2 3 .. N using N threads and in this sequence only Indefinitely . I wrote the code and disscussed my approach to use N semaphores then was asked a follow up on how to solve using 1 seamphore i told we could use counting semaphore and check value % N but i will not able to code that logic since i have never used counting semaphore.
She moved on to asking more OS questions like common memory between threads then discussed some cache question on write back policies .
Now second interviewer started asking question on C++ some output questions and some bit manipulation codes and so on and then asked about where every variable is stored static,local,global,dynamic and then some question on templates and inline functions and then lifecycle of c program (i was not able to answer this properly xD) nd got little nervous he told the other interviewer to ask questions and he would ask questions later.
Now the first interviewer asked DSA question Min Stack and asked me to write the code then asked some questions in c++ on loader and linker and the static library and dynamic library . Now first interviewer said I am done with the questions and asked the second interviwer if he had any questions for me .
He now started asking some OS question and then moved on discussion on Real Time Operating System(RTOS) and then asked a very interesting real world problem , Suppose you have a client who want his Fan to automatically change speed based on the room temperature and I also have many Temperature Measurement devices installed across the room and then asked me to propose a solution
I told my approach to give weightage to each thermometer and the finally calculate the whole room temperature using simple weightage based algo , now he asked where would i run the algorithm , i was very confused for sometime and then told i could install a cpu inside fan and collect data from all devices and run the algorithm there to calculate the room temperature and finally based on current temperature and desired temperature another basic formula to change the RPM of the fan.
Mangerial Round ( 1H ):
Interviewer stared with his introduction and told me his role is very much detail around 5 minutes and we had discussion on earlier rounds and how the whole process went then later asked my intro and the told me that this will also be a technical round since he will be my manager he wants to know my technical skills and started with DSA question to check LL is pallimdrome or not , i wrote the code using only 2 traversals one to both find mid and reverse Simultaneously and other to compare both halfs.
He then moved on os questions nd asked some really confusing questions around semaphore and mutex and then moved on to paging and detailed discussion on VA and PA and why VA is required and can different process access page table of different process and some concepts on how shared memory work . He then moved to some c++ questions and finally asked some questions on my interests and why i am interested in this role and plan for master's in future.
I'll Suggest everyone to go through C++, OS, COA, BIT Manipulation , Pointers(most imp) if you are Preparing for Nvidia.