Blizzard Entertainment, Inc.
January 2014 - Present
Develop C++ libraries utilized in Blizzard games, including Hearthstone (Windows, Mac, iOS, Android), Diablo III: Reaper of Souls (Windows, Mac), World of Warcraft: Warlords of Draenor (Windows, Mac), Heroes of the Storm (Windows, Mac), StarCraft II: Legacy of the Void (Windows, Mac), Overwatch (Windows, PS4, Xbox One), and World of Warcraft: Legion (Windows, Mac). Contributed to a company-wide C++ and LUA Premake fork that ensured C++ libraries were able to function cross-platform with minimal configuration, to provide deterministic compilation, and provided game development teams a wide array of features that were usable regardless of platform.
Establish a Doxygen documentation flow and package/distribution system for C++ binaries and libraries by creating a suite of Python scripts to facilitate the generation, compilation, packaging, and uploading of compiled assets. Build shared C++ libraries for telemetry data, websocket connections, inter-process communication, and payment systems for game teams to utilize as dependable components to increase development speed and reliability. Built and integrated the Chromium Embedded Framework (CEF) into a proprietary application to drive a headless browser and provide off-screen rendering into shared graphical memory.
Implement test-driven development (TDD) and the agile development method, decreasing bugs, increasing the speed of our team's development and debugging tasks, and increased visibility into tasks being completed. Prototype an experimental audio-based authentication system for Battle.net and a sample Unity 3D mobile game with RPC networking as part of department hack-a-thons.
Added subsystems and bug fixes to the core Battle.net game service to provide improved services to game teams and 12 million users.
Lead Software Engineer
September 2013 - December 2013
Integrated the Werkzeug framework and MySQLdb driver in a Python and MySQL REST API to provide game logic and internal administrative tools on Tank Nation (iOS). Established a Puppet-based deployment system for the Python API on AWS with auto-scaling groups to facilitate scaling of EC2 instances to maintain uptime and dynamically manage user connections.
Senior Software Engineer
March 2013 - October 2013
Lead developer on analytical API and developer system using PHP and Zend framework to provide developers analytical data and shared daily achievements. Added features to Midverse's PHP REST game API for Bingo (iOS, Android) and Slots (iOS, Android) to provide new content, modes, and features. Maintained MySQL data structures and created new gameplay modes on Arms Cartel (iOS) to increase daily users, and advised leadership on modern mobile technologies for developing new mobile titles.
Senior Software Engineer
November 2012 - February 2013
Built a web interface for users to specify triggers that would provide analytics and A/B testing events within their mobile games and would be synced to MySQL and Redis clusters. Diagnosed and optimized slow queries and designed new tables for dynamic data-driven trigger UIs by creating specialized SQL statements to improve application speed. Built payment verification systems with a vendor's API and PlayPhone's MySQL cluster to remove refunded or canceled in-app-purchases. Constructed a Unity 3D Editor integration with PlayPhone's proprietary mobile SDK to provide easier Unity 3D integration and increase developer usage.
September 2011 - October 2012
Developed game features, such as timed quests and item interactions, with Facebook and Google+ APIs in a PHP and MySQL REST service on a LAMP stack for a multi-game backend service for Ghost Recon Commander (Facebook, Ubisoft), and Pettington Park (Google+, Zynga). Restructured, tuned, optimized, and maintained a MySQL and Memcached system for the REST API. Worked closely with external publishers to select game features and assess game milestones. Created MySQL queries for analytical data to provide accurate reports to publishers.
Associate Software Engineer
September 2010 - July 2011
Completed routine bug fixes and new asset adjustments for high-traffic Java platform service (PvP.net) that powered the online MOBA game League of Legends (Windows, Mac). Drafted MySQL scripts for stored procedures and JSON migration to increase the speed of reading over 1 million user entries from Riot's Java platform. Managed Ant & Maven-based build scripts in a Jenkins environment to provide continuous integration to the entire Platform Engineering team which lead to increased visibility of faulty code commits. Researched NoSQL solutions for feature developments by evaluating multiple technologies and providing management with a per-feature review.