Code Monkey home page Code Monkey logo

Hi, I'm Michael

I'm a programmer and technical writer living in the Greater Seattle area.

I'm a programmer and technical writer living in the Greater Seattle area.

I like low-level programming and writing games. Embedded systems and classic game consoles are fun development targets.

I'm fluent in several programming languages and literate in many more.

Skills: Technical Writing | C and C++ | Embedded | Game Development

  • 🔭 I’m currently working on bare-metal libraries for writing console games with Rust:
    • Nintendo Gameboy Advance
    • Sega Genesis/Megadrive
    • Sony Playstation
    • ... more to come
  • 🌱 I’m currently learning Ghidra, and more about Rust
  • 💬 Ask me about console game development with Rust
  • 😄 Pronouns: He/Him

I'm also an experienced technical writer for all-things software development: platforms, programming languages, APIs, developer tools, and training modules.

You can find some examples of my writing below.


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:

(learn.microsoft.com)


In this section, I describe the common types of gaming input devices and how they are used through the UWP Windows.Gaming.Input namespace on Windows 10/11 and Xbox (One, Series X|S). Topics include device-specific capabilities, such as in Gamepad and vibration or Racing wheel and force feedback, how UI navigation controller is used to deliver consistent UI experience across different input devices, common Input practices for games, and more.

(docs.microsoft.com)


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)


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)


github linkedin website

Michael Thompson's Projects

d32xr icon d32xr

A modern port of Doom for the Sega 32X

doom icon doom

DOOM Open Source Release

doom-fx icon doom-fx

Doom/FX for Super Nintendo with SuperFX GSU2A

projecteuler icon projecteuler

My solutions for the Project Euler problem set in various programming languages.

regz icon regz

Generate zig code from ATDF or SVD files for microcontrollers.

rustfmt-expander icon rustfmt-expander

An awk script that expands the default rustfmt.toml file to include descriptions of each configuration setting.

svd2nim icon svd2nim

Convert CMSIS ARM SVD files to nim register memory mappings

svd2rust icon svd2rust

Generate Rust register maps (`struct`s) from SVD files

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.