I am a software engineer interested in the domain of computer graphics. I am inspired by the intersection
of art and technology, specifically for the domains of film and games. I am particularly interested in
the topics of rendering, animation, game engines, gpu architecture, and GPGPU computing.
Through my experiences working at Intel, Twitch, Blizzard Entertainment, and now, DreamWorks Animation I hope to continue my career
in the entertainment industry building pipelines that enable artists to fulfill their artistic vision to the fullest.
Computer Graphics is my passion, and I love getting my hands dirty in the low-level details of hardware implementation
and how it can be used to enable the performance and accessibility of systems across games, movies, and the ever-increasing
world of GPGPU programming.
- Building tools to streamline artist workflows in DCC software such as Houdini and Nuke using Python and C++
- Utilizing computer graphics tools such as USD, Alembic, and more to create non-destructive procedural workflows
- Directly serving production lighting and surfacing departments by delievering new tools and workflows crucial to show development
- Involved with many studio wide efforts to maintain, and improve, our production pipeline's efficiency and artist's enjoyment
At DreamWorks Animation I am a Software Engineer on the technology side of the studio. I work with lighting and surfacing departments on a day-to-day basis to develop and maintain our Houdini ecosystem. Aside from my primary responbilities, I am one of a group of individuals at the studio aiming to progress our studios OpenUSD ecosystem, both for our proprietary tooling and open-source tools such as hdMoonray. Prior to my current role I also spent a year directly supporting production artists as a feature film Lighting TD.
- Worked with technologies such as DirectX, HLSL, and C++ to build modern, compute oriented, particle system.
- Owned development of format-flexible mesh processing and animation system to emit particles from the surface of dynamic meshes
- Built many small features and additions to the system such as: physical forces, continuous-noise module, and emitter geometries
- Responsible for writing and debugging compute shader pipelines using HLSL and profiling tools like RenderDoc
- Write performant, hardware considerate code capable of running on 20-year old machines and cutting edge ones
At Blizzard I work on the game engine for World of Warcraft, I'm part of a team of engineers bringing up several modern iterations of systems throughout the engine. Specifically, I have worked quite extensively with geometry and animation pipelines to help build a new compute shader based particle system that will allow VFX artists to create high-fidelity, and high-performing, in-game VFX.
- Owned creator tools that improved time spent streaming by >15% developed with Dagger, RxJava, and Kotlin
- Pioneered system utilizing OpenGL ES rendering pipeline and GLSL shaders for rendering dynamic visuals
- Developed automated unit tests for MVP architecture to maintain CI/CD with JUnit5 and Mockito
I joined Twitch as an Android mobile engineer, and while working on the my summer internship project I saw a unique opportunity to utilize OpenGL ES within our application to create a new suite a creator tools aimed at improving stream branding, accessibility, and viewer interactivity. Coming back for the fall, I built a 2D rendering service which could was used to render stream elements as overlays to the streamers content.
- Analyzed system design using computer architecture knowledge to design validation tests in C and Python
- Validated pre-silicon processor firmware configurations simulated on FPGA in Simics to detect vulnerabilities
- Developed scripts in Bash to streamline validation workflow in UNIX / Linux environment
At Intel I got to work on the Alder Lake family of CPUs writing automated test cases to aid in the pre-silicon validation of CPU architecture. I frequently worked with C, Python, and Simics, to write these test cases for the driver engineers.
As a software developer, I aim to build creative solutions to problems which impact artists and end-users. In the past I've worked as a Graphics Programmer at both Twitch and Blizzard Entertainment, building tools which could be used by artists and creators to fulfil their creative vision. Now, I am a Software Engineer at DreamWorks, working day-to-day with artists to build tools that complement and enhance procedural workflows in Houdini.
Personally, my work is focused entirely on computer graphics. Typically I am working on some sort of rendering engine, both physically based and real-time. I have written several rendering algorithms from scratch for my own developmental purposes as well. My goal at the moment is to maintain two fully functional engines. One for real-time optimization work and another for photorealistic work. In development with these engines I typically work with Modern C++, OpenGL, and Vulkan.
While an undergraduate, I did research which falls into primarily two areas: Computer Graphics and Machine Learning. As a undergraduate research assistant at UK I worked in both imaging and machine learning. While working in a biomedical imaging lab I developed an optimized biomedical imaging device that would allow the reconstruction of cerebral bloodflow using CUDA and MATLAB. I also did research for the application of convolutional neural networks to characterize part defects and optimize manufacturing processes with the Institute of Sustainable Manufacturing at UK. The bulk of my work involves heavy amounts of data analysis and processing using Python and tools such as Tensorflow, Keras, Pytorch, CUDA, and Pandas to enable my machine learning workflow.