Hi, I'm Michael.

Near the end of 2016, I left a full-stack Python position, and jumped in head-first into my two passions: education, and indie video games. When I'm not teaching a web development bootcamp at UC Berkeley Extensions, I'm making rookie mistakes with game dev so you don't have to, and writing this blog about what I learn along the way! I hope it'll be useful for others considering a similar path, or interested in getting started with indie game development under Linux. If you want to contact me, click here to answer a captcha and expand my email address: [email protected] ⚹ .com

Excluding drivers in the OS, my game dev stack is 100% free software.

If you are curious, this is what I use:

  • OS: Linux (Ubuntu 16.04)
  • Engine: Godot - a free and open source 2D and 3D game engine
  • Artwork:
    • Inkscape - top notch SVG / general vector graphics editor
    • GIMP - raster editor, comparable to Photoshop
    • MyPaint - sketching and painting with my graphics tablet (I've also used Krita)
  • Music and audio: KXStudio suite - I wrote a blog post on why
  • 3D Assets: Blender - industry standard 3D graphics software
  • Editor: I'm already a fan of the notoriously-hard-to-learn-but-powerful vim, so I use that instead of the Godot IDE
  • Blogging and streaming tools:
    • Live streaming: OBS Studio - truly the best, I use both OBS for Twitch and for recording lessons at UCBX
    • GIF recording: Peek - dead simple GIF maker
    • Screenshots: Shutter - very handy and screenshots and annotations
    • Blog: Ghost - a slick modern node.js blogging software, installed via a pre-made image on Digital Ocean1

If you want to get started with Linux or free software indie game development, then check out this blog post on it.

My stream

I sometimes Twitch stream while I work! Some people find "should-surfing" programmers helpful in their own education. I also hope to involve people in the games I'm developing at the earliest stage so that I can get immediate feedback in the features and decisions I'm making... essentially involving the player community in the very earliest steps of the creative process. Exciting!


watch me code live on twitch!


  1. Of cloud hosting providers, my favorite is Digital Ocean which I use to host all my sites (including this one). I find them cheap and reliable, and with a much easier to understand UI and pricing scheme than the more popular AWS. They also have "1-click install" images of Ghost and a few other popular stacks. If you're curious, here's my Digital Ocean affiliate link which includes $10 of credit.