Career overview
I am an experienced computer graphics technology professional, exhibiting both breadth and depth in applications, system software, and hardware. I have a proven track record of delivering innovative and elegant solutions to hard problems in 3D and 2D graphics, as well as multimedia audio and video.
While my undergraduate degree is in physics, I also have an extensive education in computer software and hardware. However, the turning point came when I was seduced by computer graphics during an internship immediately after graduating with my degree in physics. The rest, as they say, is history.
Perhaps the most formative portion of my career was spent in the early days of Microsoft, where I worked on what were at the time ground-breaking graphics applications for the PC industry. The first of these was Chart, a business data visualization application, where I developed both the high-level and the low-level graphics functionality. I then led the development of Paint, the graphics editor that shipped with the first version of Microsoft Windows. I also worked on the first prototype of Windows that Bill Gates demoed at COMDEX in 1983.
Next, I worked for IBM, both as a researcher in computer graphics at the world-class Watson Research Center in Yorktown Heights, NY, and for a DSP development organization in RTP, NC. IBM also funded my PhD at UNC, which is complete except for the dissertation. My research topic focused on physics simulation for collision detection based on a novel Taylor series approach to solve the equations of motion. The resulting time solutions were then unified with the spatial representations to create Bézier space-time volumes, which formed the basis for a collision detection algorithm. This work was primarily intended for animation applications.
After leaving IBM, I returned to the Seattle area where I worked remotely as an architect for a number of short-lived graphics hardware companies in Silicon Valley.
I decided to leave the volatile graphics hardware field, so I ventured into software technologies for game development, since much of the work I had done previously was very applicable to that field. After a short stint at Nintendo, I started a game company called Neutron Games which focused on providing development expertise to potential publishers of Nintendo GameCube software. Unfortunately, the demise of the GameCube was foreshadowed by our inability to interest third party publishers in using our services. We subsequently pivoted by developing a karaoke game that featured real-time lip syncing. However, it was too little and too late to save Neutron Games.
After Neutron Games folded, I found my first non-technical job opportunity as a developer relations manager for AMD, where I represented AMD's interests with various multimedia organizations at Microsoft. After two years in that position, I concluded that I was better at actual software development than just talking about it, so I migrated to a team that helped optimize Microsoft's video codecs for AMD's new 64-bit architecture.
I had the opportunity to return to 3D graphics on 2005 when I joined Microsoft's Virtual Earth 3D team, where I developed a parallel pipeline to process geospatial 3D building models. After three years on that project, I joined a team developing an experimental operating system and contributed to the graphics infrastructure of that project for the next two years.
After leaving Microsoft, I joined Intel's open source OpenGL development team, where I contributed to GLSL shader compiler technologies and developed performance tools.
Wanting to get back into application development, I then joined Intentional Software Corporation, Charles Simonyi's start-up that focused on a novel way of enabling non-technical people to create applications.
Most recently, I have been consulting for clients who need advanced 3D capabilities in their software, including projects that involve WebGL, which enables 3D graphics in a browser.