Hi, I'm Michael.

Not too long ago, 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 web development and working on cool problems in web infrastructure, I'm making rookie mistakes with game development 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 (or just guess the popular email provider that starts with G).


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

If you are curious, this is what I use:

  • OS: Linux (Ubuntu 18.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 with Ardour - I wrote a blog post on why KXStudio, and another reviewing Ardour DAW
  • 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


A few people have asked about the hardware I use. You don't need a cutting-edge computer for 2D game programming or web development! Unless you want to work on advanced 3D games, there's no need to go out and buy a new Macbook Pro, etc. Instead I recommend buying refurbished hardware and installing Linux. This is what I use:

  • Hardware for programming: 2
    • Lenovo Thinkpad T520: I bought this in 2016 refurbished off eBay for $250 - I use this when I want a big display and faster CPU (stats: Core i7, 8 GB ram, 1080 display).
    • Lenovo N22: I picked up one of these for $135 refurbished off eBay, and have been using it more and more in 2017 for work, as it has superb battery life and very light and small form-factor, while having more than enough stats for getting work done (stats: 4GB ram, 64GB storage, no moving parts, ~8 hr battery life)
    • Acer 1: Can be purchased for $180-220 new, and is my top recommendation for buying a new low-end laptop for Linux. I use this for teaching and document editing. Read more about running Ubuntu 18.04 on the A114-31-C4HH and A114-31-C5GM models here.

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

My Music

My gear, as of December 2017

As with computer hardware, I try to stay frugal with audio equipment too. Everything I got second-hand, locally with craigslist, for prices 1/2 or 1/3 that I'd find at music retailers, either new or used. If you are looking to acquire home studio equipment, I'd recommend you stalk used listings for a while first!

  • Music studio gear
    • Computer: Dell Optiplex, Core 2 Duo, 4 GB ram
    • Mixer: Behinger Xenyx 802
    • Monitors: Mackie SR3
    • Synths:
    • Controllers and sequencers:
    • Misc:

  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.

  2. Note that both laptops lack 3D cards, meaning they are only useful for development, and older or indie games. For modern games, I typically stream from a gaming computer I got in 2011 (an ASUS workstation with discrete graphics).