I study computer science and cinema and media studies at the University of Pennsylvania. Currently a senior, I’ll graduate in December of 2018.

During a four-month internship on the Global Technology team at Pixar, I was asked to improve the speed and decrease the memory usage of shot conversion: a multi-hour, out-of-core conversion process between the .menv and .usd scene-description formats.

While dissecting the massive C++ codebase, I found an optimization which resulted in using 60% less memory and decreased CPU time by 15% during shot conversion. This brought memory usage for shot conversions in Coco from ~15GB per computer (on the renderfarm) to ~5GB.

Darwyn Peachey, my mentor and the former CTO of Pixar Canada, says,

It is rare to find someone who is still in college and is so skillful at managing time and expectations, communicating with his colleagues, and understanding an unfamiliar and complex code base.

After several weeks, he succeeded in substantially reducing the memory cost of shot conversion...and added partial conversion of a limited set of frames.

This summer I worked at Analytical Graphics, Inc. on the Cesium team, which creates a massive open-source JavaScript library for 3D globes and maps. My tour de force is a GitHub bot, Cesium Concierge, written in JavaScript and Node.js from scratch. Concierge uses GitHub WebHooks and REST API to automate the common tasks of maintaining a large open-source project.

I’ve been active in the Rust lib-blitz effort (see my latest contributions). I love the language and am becoming a better programmer because of it. For example, I have learned much more about how to write memory-safe programs in C or C++ because Rust has drawn my attention to the concept of lifetimes!