Sometimes you have to make yourself uncomfortable to follow a dream. That is what I decided when I took the chance to apply to a new team here at Nvidia for something I have always wanted to work on… a game engine!

Well technically a simulation engine that’s “played” by autonomous agents/hardware, but same thing.

When I was in college I had the opportunity to take a couple classes on game engine design and was incredibly fascinated by what was an intricate and finely focused piece of software architecture. It was by far my favorite class and one of the only ones where I read the cover front to back. I never wanted that class to end and have kept dabling/reading up on state of the art for modern game engine architectures since then.

When I graduated, there were two things I wanted to do in my career:

  • Work on FOSS for Linux and hopefully contribute to the kernel
  • Work on a game engine

I went the first path the last 5yrs following that dream and had an incredible time. I loved working on linux networking and FRRouting. They are software systems that underpin the foundation of our internet. To paraphrase my coworker, “if you are streaming Biggest Loser on Netflix, you are probably touching code we have written.”

And I still plan to contribute in my free time!

However, it was time for a change. My mental health and growth as an engineer needed it. I wanted to be uncomfortable again and follow that second dream.

When I saw an opening to work on Drive-Sim here at Nvidia, I jumped on it. How could I not? It seemed like the chance fell into my lap right when I needed it.

Drive-Sim is a simulation engine for training autonomous vehicle agents inside of. It is basically an engine to make games that neural network cars can play over & over again to learn as well as to test hardware like cameras/sensors in a simulated world. I like to describe it as GTA but you can only roleplay a person driving around obeying traffic laws.

I am joining the core runtime team. We make the glue that holds all the pieces together including the entity component system, time/replay, networking, and content pipelining.

Needless to say I am pumped.