Key Skills
  • C/C++
  • C#
  • Java
  • Python
  • LUA
  • HLSL
Graphics APIs
  • DirectX 9
  • DirectX 11
Engines and Tools
  • Unity
  • Unreal Engine
  • Microsoft Visual Studio
  • Autodesk 3ds Max
  • Autodesk Mudbox
  • Adobe Photoshop
  • PC
  • Xbox One/360
  • Oculus Rift/Vive
  • Android
Some Specifics
  • Mechanics and Weapons
  • AI Behaviors
  • Controls and Interfaces
  • Animation Systems
  • Multithreading
  • Rapid Prototyping
About Me
        For the past several years I've worked in a wide variety of areas in game development. My focus has been on gameplay and graphics programming, as well as engine development. I've worked primarily on projects for PC, but I also have experience on Consoles and Mobile devices, and more recently with VR (Oculus and Vive). As a programmer I've gained experience in various areas that include gameplay mechanics, AI pathfinding and behaviors, UI and input systems, various graphics programming techniques, network programming (server client and peer to peer), animation systems, multithreading, memory management, and more. I've worked at being a generalist in many regards, and I also have a strong understanding of areas outside of programming, which allows me to easily work with developers in other disciplines. I can also work in those areas if need be, for rapid prototyping and initial iterations of levels and characters.

        Outside of game programming I have a strong background in mathematics and physics. I more recently worked extensively with modern AI with a focus on deep learning and reinforcement learning. Through that work I developed an engine designed around AI research. I used CPU and GPU computing for AI training. For the GPU I decided to use compute shaders for direct integration into the graphics engine. I also created a simple graphing language for quickly designing networks, which currently supports only feedforward and convolutional networks. I also have an understanding of evolutionary algorithms such as NEAT that allows for dynamic topologies of networks. I've created chatbots and utility apps for with their API, and have worked on games designed for the platform such as a twin stick shooter that can support thousands of players controlling a ship through voting on direction and shooting individual projectiles. I also have experience developing video streaming applications that allow a user to stream from various sources to It uploads the stream to Twitch with the RTMP protocol. It processes the video with the ffmpeg library, and audio with an AAC encoder. The interface uses the DirectX 11 API. I also have some experience with web development with HTML, Javascript, PHP and SQL, though my experience in these areas aren't as strong as in others.

        As mentioned above, I have years of experience working in areas outside of purely technical roles. For creating digital content, I have several years of experience with 3ds Max. Through that experience I can quickly create props, characters and structures (though not at a professional level). I've worked with creating and collecting audio effects and ambience with the help of tools such as FL Studio and Audacity. I have experience with Photoshop and Illustrator, though I primarily use GIMP and Inkscape nowadays. Through independent development I've gained a strong understanding of game design. This includes mechanics, interfaces, levels, and scripted and unscripted events and sequences.