Nvidia

Duration
June 28, 2021 → September 17, 2021
Position
Software Engineer Intern
Team
Tegra Camera Graphics Automotive
image

Nvidia is a global leader in artificial intelligence hardware and software. They've invented the GPU and drive advances in AI, HPC, gaming, creative design, autonomous vehicles,

Project: Unit Status Dashboard

Languages / Tools Used: C++, Vulkan, Kibana, Elasticsearch, Python

Location: Santa Clara, CA

During the summer of 2021, I worked remotely as a Software Engineer Intern at Nvidia, supporting the Tegra Camera Graphics Automotive team. The team focuses on the intersection of automotive safety and computer graphics.

The Problem

In a field like automotive safety, efficiency is crucial. Otherwise, it may lead to some detrimental outcomes.

Since there was no method of understanding progress in efficiency, the team needed a way of visualizing the codebase metrics, such as the percentage of test coverages and coding violations.

Solution

To understand how to best approach this problem, I drafted a system design that detailed the necessary components and flow of data (from different sources) needed to support all requirements. I synced up with multiple engineers (stakeholders) on the team to understand their perspectives and what features they would benefit from.

Additionally, I took some time to dig into these coding violations. I wanted to understand the process of how these violations are realized, as well as how they are solved. Being able to fix some violations reported by AUTOSAR, CERT, and MISRA allowed me to become more familiar with the automotive coding safety standards, as well as gaining more context into the project.

As a result, I created an internal dashboard (using Kibana) that displayed the active status on a per-unit level. I learned how to effectively store and manage data to efficiently analyze and assist the team to better understand their progress in ensuring efficiency throughout their entire system.

Last day of my [remote] internship!
Last day of my [remote] internship!

Learnings

  1. Adaptability
    1. Coming into my internship, I knew very little about computer graphics. I simply took a class that sparked my interest, leading me to want to learn more about the field. While it was definitely daunting at first, I slowly broke the ice that stood between me and my project over time. Nobody comes into an internship knowing everything. All you need is a determined mindset, as well as the proper resources to succeed. Having a helpful mentor (who is +3 hours apart from me) and a manager who was always willing to hop onto a 1:1 to discuss my progress and if I need any help, was what set me up for success. The confidence drove me to persist and ultimately, adapt to this new role that I knew nothing of. From this moment forward, I kept it in the back of my head: nothing is easy, you just gotta take risks and try.
  2. Taking the Initiative
    1. With any project, no scope is set in stone. A unique perspective can really positively impact and drive a project to success. I made sure to always include my two cents in any sort of discussion as there is never one way of doing something, but multiple. Additionally, as mentioned previously, nobody is expected to know everything! Rather than being stuck for hours on the same thing, asking questions was a crucial part of my success. While it is tough not being able to do something on your own, you live and learn. The probability of needing help will slowly decrease over time, increasing your ability to have more ownership and independence.