My internship at NVIDIA

My lack of a (formal) CS education hurt me to the point I had been rejected from every single internship application over the course of 3-4 years after graduating college. However, fortune smiled on me last year when I started interviewing for NVIDIA with the autonomous driving team. I am currently interning at NVIDIA with the prediction team. I started on 24th June 2021 and the internship will end on 27th August 2021. My problem statement is to improve the ego-vehicle prediction using deep learning. (I have to purposefully keep the problem statement vague for obvious reasons :))

I wanted to pen down three things that I have realized working in industry for the past two months–differences between academia and industry, some of the industry-specific things that I learned, and considerations for a post-PhD career. Starting with the first, I want to distinguish between the people–well, not the people, but the interactions with them. It is a lot more dynamic, a lot more interaction, and there is a quicker feedback turnaround time. In a PhD program, there is often a feeling of working by yourself on a problem that only you understand. You may have a lot of friends, but there may not be a lot of people with whom you can discuss work-related matters with. In industry, it’s more open and people can immediately identify with what you are working on. In other words, you don’t have to catch people up with what you have been working on, they already know about it, which increases solidarity and team spirit. Next, the work itself. There are clearly defined goals which help structure your work and plan your day and week. Having defined goals also helps in better time-management. More importantly, once you have completed a goal, there are clear performance metrics (called “Key Performance Index”) or KPIs to evaluate your work. Such structure is missing in academia. As I mentioned before about teams, there will always be someone to help you if you get stuck somewhere. Finally, the pay. There is no doubt that the pay is much better than in academia, especially for a lucrative industry like self-driving cars. There is a lot of discussion on this factor in both academia and industry and the way to interpret this factor is purely subjective. What I mean by that is it depends on the person how much they value this factor for it to matter.

Next up, I want to write about some things I learned in industry that I never picked up in academia (and probably won’t even in the rest of my PhD program). First, industry is a really cool place if you like software engineering. I personally don’t want to build a career out of software engineering, but I cannot deny the practical utility of having good software skills. Seven weeks in, and I have already become a lot more comfortable on the command-line and using the unix shell to automate tasks that otherwise would have taken me a few minutes to complete. Granted, a few minutes are not a big deal, but when you stack up these minutes over the course of an entire work session, the savings are immense. I work in a field that heavily relies on deep learning. In my internship project, I am training huge recurrent neural networks on trajectory datasets to improve trajectory prediction. There are a myriad of problems that crop up at scale and trying to debug deep learning issues in large codebases is a skill that I learned in academia but never got to exercise. At NVIDIA, my model training skills are being tested to the limits and I am happy I am honing my practical engineering skills as I am doing so. The other thing I learned in the self-driving car industry is how algorithms whose theory I learned in academia is actually applied to real world problems in industry. For example, trajectory prediction was the focus on my research in the beginning of my PhD. But although I tested many trajectory prediction algorithms on synthetic datasets, I never understood how such systems worked on a real car and even if they did, how they were interfaced with the other systems that are required to enable fully functioning self-driving vehicles.

In the last segment of this blog, I wanted to ruminate about life after PhD. Until two months ago, continuing onto a postdoc and then eventual faculty position was all but obvious. And–that is still the plan, don’t get me wrong, I love academia. But even so, it’s not been half bad at NVIDIA. And it was probably my own biases that created metaphorical walls around the idea of engaging with industry. Now, even though my path is still academia, my walls are torn down. More specifically, I am open to thinking about joint positions split something like 80-20. I want to be involved in the industry. And I think the biggest factor for that is that I like the structure, clarity, and feeling of “safe” problem statements. But at the same time, I want my day-job to involve research, mentoring students, and teaching undergrads– the whole academia shebang.

So far I have been talking about industry from an engineering perspective. Industry research labs like Google, Microsoft, IBM are different in that they operate much like academic labs, but with more resources and slightly less freedom than academic professors. That’s it for now. I will most likely update this post once my internship ends. I am also thinking of figuring out what I can say about my project here so I can post some cool results.

Leave a comment