Writing Samples
Technical Writing Samples
Visual Studio Graphics Diagnostics
In this section, I detail Visual Studio's Graphics Diagnostics, a set of tools for analyzing rendering errors and performance problems in Direct3D applications. The workflow begins by capturing rendered frames–live, from a Direct3D application–into a Graphics Log Document; later, the capture is played back under the Graphics Analyzer where rendering errors are examined interactively by using tools such as the Event List, Pipeline Stages window, Pixel History, and others.
In addition to the conceptual and GUI reference topics, I created several scenario-driven walkthroughs to demonstrate how these tools are used in concert to diagnose and correct different types of rendering errors. Some highlighted scenarios include:
- Walkthrough: Capturing Graphics Information
- Walkthrough: Debugging Rendering Errors Due to Shading
- Walkthrough: Missing Objects Due to Misconfigured Pipeline
(learn.microsoft.com)
Upstart - Games Revolution
Upstart is a monthly column highlighting emerging opportunities and technologies for those early in their career or seeking new challenges. In this article, I discuss how computer and video games have grown to an $80+ billion industry, and how game engine platforms like Unity, Unreal, and others have made game development easier and more accessible than ever before.
(MSDN Magazine, August 2015, vol. 30 iss. 8)
Hello ARM: Exploring Undefined, Unspecified, and Implementation-defined Behavior in C++
In this blog post, I explore how various non-portable C++ code behaviors that developers might have inadvertently relied upon are likely to break when porting legacy Windows code to ARM-based devices. The article was written during a time when many developers were porting their Windows apps to ARM CPUs for the first time, exposing non-portable code as bugs. Various problem scenarios and their remediation are discussed, with platform-specific details given to aid developers in recognizing their symptoms.
(Microsoft C++ Team Blog, October 2012)