The Interview
The interview was simple enough, testing me on basic digital design knowledge and Verilog programming language. Some of the typical digital design questions like making an AND, NAND gate from mux and such were asked, but if you have done your digital design course thoroughly then it would not be a major problem. Some pseudocode for Verilog functionality followed by discussion on some of the concept of Verilog also asked.
Then we moved on to my projects. As I had several projects, most of them focusing on digital and embedded systems becoming a major chunk of my interview. The questions were along the lines of what sort of work I had done, the problems that I had faced and how they were tackled. Knowledge about the technology (protocol or the hardware used) was also tested and why I used some specific technology instead of competing ones (such as why you would use Arduino mega instead of uno).
The Internship
I was assigned to the NOC (Network in Chip) team of Tegra. It is the mobile division of NVIDIA and used for self-driving cars and Nintendo Switch. My team looked after several IPs and their NOC for the control signals. As these are to be developed for self-driving cars, safety is a big agenda on the list and most of the design focused on it. My assignment was to automate topology creation of 6 IPs that my team looked after. There was another mini task to automate generation of an interconnect chip-let which would act as the mesh through which control signals between masters and clients moved.
To do the tasks I had to write scripts in Perl to generate files which would further be read by NVIDA’s internal tools to synthesise net-lists for various IPs. Learning Perl would have taken a lot of time, so I instead started to code right away using very simple logic and C-style language. This gave me ample of time to understand the problem and architecture of IPs instead of struggling with tools that I would be using.
Majority of my time was spent asking my mentors, or at time whoever from my team was available to understand the structure of the design and reason for the way things were implemented. I mostly focused on my project and my mentors were helpful enough to set up and run NVIDA specific tools that might have taken me weeks to understand, set up and debug if they conflicted with my project. This had saved a lot of time for me as problems that I was facing were solved quickly. My mentor and other teammates (by the mid of my intern I was interacting and asking about stuff from most of my team instead of just my mentor) were very helpful and always encouraged me to ask more questions. Although asking around is a good idea but over doing it might annoy people, so I stuck with a simple rule to spend 60 mins on the problem first, try to solve it by myself, get an idea about what might be wrong and how I can solve it. This would help to develop some insight about the problem and when you discuss it with others you would get a better understanding about the fix. The projects were very crucial to the flow of my team and the work that I did was being used extensively after I had completed it. When I joined, I had not hoped that my project would still be alive but to my surprise it was still being developed and updated by my teammates. The tasks that they give is not just a dummy task but something that they are still using.
Work Culture
The work culture in NVIDIA is awesome. There is infinite work from home policy, though exploiting it should not be considered. As the company follows a horizontal hierarchy and even your teammates encourage you not to use tiles like Sir/Ma’am. There is nobody who monitor you and keep a track of where you are. They will ask for updates, but the task is your responsibility alone and you are free to do it however you want. If something that you do does not break the existing structure and model then nobody will dictate you to do your work in certain manner, you have the freedom to do it your way. The work hours are quite flexible and there were sometimes when I woke up late and came in as late as lunch time. At the same time, NVIDA does not has a culture of staying till late working, with most of the people leaving the office by 5PM. The company follows the philosophy of ‘speed of light’. It encourages people to complete the task at hand as fast as possible and keep moving ahead. It might not be evident by me just saying it but you can find various instances where the philosophy is applied.
The internship was free from stress and my team made sure to accommodate me as much as they could. For the rest of stuff, NVIDIA makes sure that you do not have to run around the city to settle in. They provided accommodation for the entirety of internship. Breakfast was provided at the hotel itself and lunch at the office. Also travel from hotel to my office was arranged by the company. This meant that I was saving most the money that I was being paid and had extra room to spend on stuff that I wanted. These facilities are provided to every employee in the company.
To summarise, the work culture allows flexibility and allows you to tackle the problem the way you want. The stuff you would be working on will be used somehow by the team and not scrapped as soon as you finish your intern. Due to the horizontal hierarchy of the company your opinion is listened and considered if what you say makes sense. The company’s ‘speed of light’ encourages to keep you moving ahead, and they help you to do so by not having you worried about where you stay, or where you will have your breakfast.