I applied online. The process took 3 weeks. I interviewed at NVIDIA (San Jose, CA) in Oct 2014
Interview
I applied for the systems software engineer job posting online. After a month of applying, the HR reached out to me and the telephonic interview timings were sent by email by one of the HR's. They were quite flexible when it came to interview timings and date. The interview process was very structured and professional
Interview questions [1]
Question 1
The questions were mostly on RTOS and its concepts. Questions ranged from what is a semaphore, difference between semaphore and mutex, how would you design a system where 2 threads are trying to access a shared resource at the same time. FInally i got a dynamic problem - write a program which accepts user data of any type ( it can be a variable, array, structure, pointers etc) and
sorts it. I did not know the solution to this question
I applied through an employee referral. The process took 1+ week. I interviewed at NVIDIA (Santa Clara, CA) in Mar 2015
Interview
The first round is 60 min phone interview. There is no questions on my project, and almost all of the questions are technical. The questions covers software C++ algorithm, hardware FSM and computer architecture pipelines.
Interview questions [1]
Question 1
1. Swap function: difference between pass by value and pass by reference
2. Fibonacci series. Two implementation: for loop and recursive.
3. The usage of constant, constant functions
4. Detect sequence pattern in FSM.
I applied through an employee referral. The process took 4 weeks. I interviewed at NVIDIA
Interview
The process was long and grueling, consisting of 3 phone interviews, 2 programming tests, and a 6-hour onsite with lots of technical questions, but it was also exciting in how much I learned. Received rejection notice about 10 days after onsite.
Interview questions [1]
Question 1
Lots of questions about GPU architecture, fundamental parallel algorithms, big-O work/cost efficiency analysis. General questions about considerations needed to optimize code on a hardware/operating system level (e.g. how does instruction-level parallelism work? how does virtual memory work?).