Nathan Otterness



I obtained my Ph.D. in August of 2022 from the Computer Science department at the University of North Carolina at Chapel Hill. I worked under Professor James Anderson in the Real-time Systems group. My research primarily focused on enabling predictable timing in programs that concurrently share GPUs. I have also contributed to projects involving shared-hardware isolation (on CPUs) and mixed-criticality scheduling.

Apart from my research, my personal interests include operating systems, a wide variety of low-level programming topics, and fractals (High-resolution examples include this and this. Here's a cropped and downscaled version of one.). I spend a large amount of time programming as a hobby. My github page includes most of my more-complete programming projects. I was a winner of the 2020 International Obfuscated C Code Contest.

As of September 2022 I work at NVIDIA, in the hardware infrastructure group on projects related to GPU and datacenter simulation and testing. I previously worked at NVIDIA for three summer internships: May through July of 2018, May through August of 2019, and May through August of 2021. From 2012 through 2015 I worked in computer security research under Professor Fabian Monrose. As an undergraduate, I spent a few months as a Co-Op at IBM.


Spring 2019: I taught COMP 455: Models of Languages and Computation (aka "Automata Theory"). Link to the course website.