Recognize that background? It's Conway's Game of Life!

Rules for "life":
Any live cell with fewer than two live neighbours dies, as if caused by under-population.
Any live cell with two or three live neighbours lives on to the next generation.
Any live cell with more than three live neighbours dies, as if by overcrowding.
Any dead cell with exactly three live neighbours becomes a live cell, as if by reproduction.

./About

Hi there, I'm Chad! A pragmatic programmer passionate about my craft: Game Development.

I've worked as a full stack developer focused on scaling game services, a gameplay engineer designing and building new features, and an engine/tools programmer implementing and optimizing core systems. As you can see, I like to wear lots of hats!

I've done research in the field of Artificial Intelligence focusing on Case-Based Reasoning and Reinforcement Learning. That work has been published and presented at the 2010 International Conference for Case-Based Reasoning and continues to be built upon today.

2010 also marks the release of my first public indie game Guess Phrase on the Android Marketplace (horrible programmer art and all). Since then I have continued to make games both professionally and in my spare time. I hack to learn, practice, create, and simply make things work.

When I am not sitting in front of a keyboard I am mountain biking. In 2014 I started racing ending the season winning the overall California Enduro Series. Since then, I've continued to challenge myself both physically and mentally racing various gravity and endurance race formats.

I am happily employed as a Technical Director at Electronic Arts and not actively pursuing any new opportunities at this time, but please feel free to keep in touch!

./Contact Details

Chad Mowery
Portland, OR
chad.j.mowery 'at' gmail 'dot' com

./Work

Electronic Arts

Technical Director November 2021 - Present

Games: Currently working on an unannounced title

Electronic Arts

Lead Server Architect April 2020 - November 2021

Games: Unannounced title

  • Typescript, Nodejs, GCP

Super Evil Megacorp

Staff Engineer March 2015 - April 2020

Games: Catalyst Black, Vainglory

  • Designed and implemented a DataModel abstraction layer effectively decoupling data from code, enforcing data validation, and improving new feature velocity (Python).
  • Spearheaded the Android launch of Vainglory. Transformed an incomplete port of the game to a launch ready title solo (C++, Java).
  • Designed and implemented a complete constraint-based layout library for a proprietary UI system. Drastically reduced code bloat, improved maintainability, and moved the studio to a declarative UI philosophy (C++).
  • Built 10+ fullstack game features including guilds, gacha, and player quests in an effort to level up game retention and improve monetization (Python, C++, Redis).
  • Implemented software font rendering tech using the STB C library. Provided dynamic runtime glyph maps allowing our tech to leverage myriad typeface while enabling new language support in engine (C++, OpenGL).
  • Re-designed and implemented client IAP abstraction layer for iOS and Android in an effort to provide a cleaner more extensible purchase API and enable third party storefronts in China (C++, Objective C, Java).
  • Designed and implemented dynamic texture atlas support with full pipeline for packing, compositing, and writing atlas data into texture headers with runtime consumption (C++, Python).
  • Implemented match simulation and tournament management tools improving internal/external developer workflows (Python, Javascript, HTML).
  • Built a complete in game VoIP Client for Mac, Android, and iOS using the PJSIP C library. Included game to VoIP interface and low level star/mesh topologies (C++).

Machine Zone

Sr. Software Engineer March 2012 - March 2015

Games Shipped: Game of War: Fire Age, Mobile Strike, Race or Die 2, IMob2

  • Mentored new employees and lead junior developer game feature pods ensuring successful first deliverables.
  • Conducted technical engineering interviews playing a major role in team staffing decisions and company scaling.
  • One of three engineers to take Game of War from prototyping, to pre-production, production, and finally ship on two mobile platforms.
  • Significant code contributions and ownership of over 20 game features and core systems in Game of War providing a high quality project codebase for future feature development (C++, Lua, PHP, MySQL).
  • Designed and implemented a templated Entity Component System fundamentally changing our engine and game systems by decoupling data and logic. The outcome was much more cohesive engine services and cleaner game logic (C++, Lua).
  • Implemented and optimized core game engine texture atlasing/packing (runtime), sprite batching, and 2d animation systems (C++, Lua, OpenGL).
  • Built a debug command line interface for in game debugging and on the fly modifications/hot loading massively speeding up design, engineering, and QA iterations (C++, Lua).
  • Implemented Spriter (boned sprites) runtime with custom shader and particle emitter attachment support enabling artists to create complex animations and effects in-editor (C++, OpenGL).

Machine Zone

Software Engineer March 2011 - March 2012

Games Shipped: Global War, Original Gangsters

  • Built a scalable, multi-title, server authoritative casino system including 7 mini games with full tool suite as a massive first deliverable (Objective C, PHP, MySQL).
  • Designed and implemented the company’s first multi-title tutorial system complete with plug-able metrics support and tooling allowing designers to engage more players (Objective C, PHP, MySQL).
  • Rebuilt core project bootstrapping and structure to facilitate rapid prototyping and quickly generate new projects without the need of engineering support.
  • Designed and implemented multi-title player gifting features with support tools (Objective C, PHP, MySQL).
  • Optimized entire game test suite runtime by 75% significantly speeding up automated build processes and developer productivity.

Visual Health Information

Software Engineer May 2010 - March 2011

  • Lead developer on a 10 year old ASP .NET ecommerce website port. Performed all necessary feature updates and deprecated API corrections effectively bringing the site up to 2010 standards.
  • Co-built an interactive math proficiency testing web application for the Colorado Board of Education that tests and tracks student mathematics abilities and problem solving skills--a highly customer-facing product that is used daily by thousands of teachers, students, and district officials
  • Maintained a large code base of 3D rendering services supporting complete automation of flash video files from raw model data with validation using a fully integrated audit process.
  • Built new features and updated critical checkout/purchasing systems for the company’s core ecommerce site which provides the majority of revenue while keeping downtime to an absolute bare-minimum.

ManTech International Corporation

Software Engineer September 2009 - May 2010

  • Responsible for the design, coding, testing, and integration of new system services for a distributed SOA-based tool used for the acquisition and verification of communications in a military operating system.
  • Maintained and refactored key system services and components producing a more stable code base, higher rates of product efficiency, and happier customers/users.
  • Operated in an agile environment collaborating with multiple development teams keeping a strong focus on key features resulting in the development of highly disciplined cross-team APIs.
  • Performed regular design, code, and test review sessions with team members which supported high code standards producing an extend-able and maintainable code base.

NewTec LLC

Software Engineer Intern June 2009 - September 2009

  • Acted as a software developer on a team of nine developers for a first-release developer tool deliverable.
  • Responsible for the design, code, testing, and deployment of two major services in a scalable Service Oriented Architecture middleware operating environment.
  • Designed, implemented, and tested a customer-facing user interface for an enterprise environment developer tool.
  • Created and maintained developer-facing APIs for several mission-critical tools and services which ultimately enabled the team to be more productive and avoid milestone crunches.
  • Imparted an emphasis on quality UML standard design documentation and test-driven design methodologies keeping the team organized and synchronized resulting in a successful final product.

Fred Meyer Distribution Center

Systems and Network Administrator June 2006 - July 2008


./Education

University of Washington

Bachelor of Science, Computing and Software Systems (Magna Cum Laude) 2010

With a focus on building computational worlds and Artificial Intelligence.
GPA: (Major) 3.93 (Overall) 3.87

./Publications

Online Micro-Level Decision Making in Real-Time Strategy Games: A Case-Based Reasoning and Reinforcement Learning Approach.

Citation:
Mowery, Chad., Spencer, Nathan., Bichendaritz, Isabelle. "Online Micro-Level Decision Making in Real-Time Strategy Games: A Case-Based Reasoning and Reinforcement Learning Approach." ICCBR Workshops, July 2010.

This project was nominated and presented at the 2010 International Conference for Case-Based Reasoning (ICCBR) in Italy and presents a novel approach to online adaptability of AI in RTS games.

Abstract:
The specialization of artificial intelligence (AI) techniques within the gaming industry is becoming a fast growing field of study for academia and industry developers alike. Many of the AI techniques used in modern video games are unique to a gaming problem domain as game developers often face the challenge of implementing their game AI with limited resources (game frames, memory, and processor cycles), more so than traditional AI projects and studies. However, due to the technological advancement of modern video game consoles and PCs, previous AI techniques used in industry are quickly becoming outdated and uninteresting to players. In this paper we outline a complete AI system that utilizes Case-based Reasoning and Reinforcement Learning components to provide new levels of player immersion. By utilizing real-time learning with Case-based Reasoning we can give a new outlook on games artificial intelligence as challenging and adaptive opponents for players.

Key insights:
This work addresses the limits of effective learning during online game play and suggests that the amount of learning needs to be carefully moderated using case generalization techniques as the amount of learning that is performed during play is shown to be inversely proportional to the overall problem solving efficiency in imperfect information game domains.

./The Doge is a lie! :(

  • If debugging is the process of removing software bugs, then programming must be the process of putting them in.

    Edsger Dijkstra
  • Thank you Mario! But our princess is in another castle.

    Toadstool
  • When debugging, novices insert corrective code; experts remove defective code.

    Richard Pattis
  • You have died of dysentery.

    Oregon Trail
  • Most good programmers do programming not because they expect to get paid or get adulation by the public, but because it is fun to program.

    Linus Torvalds
  • This is your fault. I'm going to kill you. And all the cake is gone. You don't even care, do you?

    Portal

./Get In Touch.

Questions, comments, or cool projects? Drop me a message, but please keep in mind I am not currently persuing any new opportunities at this time.

There was an error trying to send your message. Please try again or simply send this message to my email address: chad.j.mowery@iterativeintelligence.com
Your message was sent, thank you!