| | |
|25-Sep-2017|[Creating a modern OpenGL context](creating-a-modern-opengl-context.html)|
|04-Mar-2017|[Exploring bump mapping with WebGL](exploring-bump-mapping-with-webgl.html)|
|30-Nov-2016|[Hitchhiker's Guide to the GDB](hitchhikers-guide-to-the-gdb.html)|
|04-Sep-2016|[Exploring calling conventions with x86 assembly](exploring-calling-conventions.html)|
|20-Aug-2016|[Loading OpenGL without GLEW](loading-opengl-without-glew.html)|
|13-Aug-2016|[Native UI is dead, long live native UI](native-ui-is-dead.html)|
|30-Dec-2015|[Alpha Compositing, OpenGL Blending and Premultiplied Alpha](alpha-compositing-opengl-blending-and-premultiplied-alpha.html)|
|03-Jul-2015|[Building a Fast, Modern Image Editor](building-a-fast-modern-image-editor.html)|
|13-Aug-2011|[Android Game Architecture](android-game-architecture.html)|
At **NVIDIA**, I work on CUDA profiling tools, including nvprof, the NVIDIA Visual
Profiler, and the CUPTI library.
![ ](assets/front_papaya.png width="50%") **Papaya** is a free, open-source and cross-platform image editor.
I spend a substantial amount of my free time developing this project. I
periodically spin out useful code from this project into small libraries and
release them into the public domain. Current examples include EasyTab - a
single-header library for drawing-tablet input and gl_lite - a single-header
lightweight OpenGL loader.
![ ](assets/front_socioball.png width="50%") **Socioball** is an isometric puzzle game. In each puzzle, you have to get one or multiple balls from start to finish by placing missing action tiles along the ball’s path. Socioball uses steganography and hides data inside images, effectively using Twitter as a level sharing medium. Socioball is available on iOS and Android.
I was the solo programmer in the two-person team that made the game. I also created most of the art. Socioball is made in Unity.