Tools & Automation Engineer with 12 years in software development. I build the infrastructure that lets teams ship faster – CI pipelines, performance dashboards, test frameworks, and the automation that keeps builds clean.

Software Engineer at Azra Games (Current)

Game: Ungodly

Ungodly key art Legend: White Witch Legend: Vander HP and Affinity system Development in progress

Pre-Commit

  • Built pre-commit system that runs a targeted ~15-minute build on every peer review request, catching missing files, assembly definition gaps, and debug-flag hook mismatches before merge
  • Catches the vast majority of would-be build breaks – remaining gaps are cases where submitters don't wait for results
  • Team has come to rely on the system – active enough to flag 4 separate issues in a single day

Record & Play

  • Built ground-up automated testing solution that captures live gameplay sequences and replays them as automated test runs
  • Runs across dev and staging environments
  • Compiled out of production builds to avoid any footprint in shipped code

Harvest Time

  • Solo-built a full-stack internal web application (React + Node.js/Express, deployed on GCP Cloud Run) serving as the central control plane for automated game testing
  • Unified Perforce, TeamCity, and AWS Device Farm into a single workflow with an auto-orchestration engine and priority-weighted test scheduling
  • Built automated crash analysis pipeline that classifies test failures (OOM, ANR, Jetsam, loading stalls, game crashes vs. infrastructure failures) by parsing device logs – with alerting tied to specific changelists, devices, and tests
  • Created interactive 3D performance heatmaps (Three.js) visualizing framerate, memory, and GPU/CPU time across game zones – supports compare mode, LOD rendering, and filtering by device, branch, and changelist
  • Designed the data layer across BigQuery, Firestore, SQLite, and GCS; role-based access control via Firebase Auth

Performance Metrics

  • Automated performance testing running 24/7 across 9 device models (6 Android, 3 iOS) via AWS Device Farm
  • Built area discovery tool that automatically identifies player/enemy spawn points, zone transitions, and interactables – test coverage grows dynamically with new content, currently spanning ~100 in-game areas
  • Capture Unity profiling data (CPU, GPU, memory) per run and store statistics (min, max, avg, P5, P95) in BigQuery
  • Visualize results in Looker Studio dashboards with filtering by build, device model, and area

Shader Pre-warming

  • Extended performance runs to collect graphics state data split by quality level and region
  • Expanded coverage beyond automation by crowd-sourcing shader state from all internal playtesting sessions on real builds, filtering out non-representative custom builds
  • Comprehensive collection enabled shader pre-warming that eliminated hitching in the game's early areas

Load Testing

  • Built standalone C# application that emulates realistic gameplay message sequences against the live game server, using the game's own proto files to ensure protocol accuracy
  • Dynamically parsed server responses to handle generated entity IDs and maintain test flow across sessions
  • Deployed to AWS Fargate across 50 instances to simulate hundreds of concurrent users
  • Collaborated with the server team through ~1 month of iterative testing cycles, surfacing hot-spot database queries and skippable calls – resolved with caching across ~3 significant performance improvements

Mass Request Tool

  • Built Unity-based tool to mass-send server requests using the same client code as the production game, enabling realistic gacha simulation at scale
  • Ran weekend-long tests executing 100 10-pulls (1,000 results) per account across 10,000 accounts to build statistically reliable drop rate data
  • Caught pity system bugs before launch through statistical analysis, mitigating legal and financial risk
  • Distributed load across many accounts to prevent state accumulation from skewing results
  • Extended to populate leaderboards with thousands of test entries

Agentic Development

  • Built a custom MCP server to surface game-specific context and prompt patterns to LLM agents, enabling consistent AI-assisted workflows across the tools team
  • Leverage agentic coding tools (Claude Code) to accelerate routine automation work, directing agent workflows while retaining ownership of system design, integration, and code review
  • Extended agentic tooling to production workflows – a scheduled Claude analysis job processes daily performance reports across ~100 areas and 9 device models, replacing dense data tables with targeted actionable summaries

Daily Reports

  • Daily automated Slack reports flagging performance regressions and out-of-budget assets (models, textures, memory, download size), posted each morning
  • When first deployed, only ~30% of runs met performance targets – consistent daily visibility drove that to 98–99% as the team focused on launch readiness
  • Still surfaces ~1 new significant issue per week, typically in newly developed areas
  • Integrated a scheduled Claude analysis job to summarize results across ~100 areas and 9 device models – replacing a dense data table with actionable daily highlights

Software Engineer 2 at Electronic Arts (4 years)

Notable title: Star Wars: Galaxy of Heroes

Star Wars: Galaxy of Heroes Heroes of Middle-earth

Pre-Commit

  • Built an extensible pre-commit framework for the Star Wars: Galaxy of Heroes team, triggering on peer review requests via Jenkins
  • Each test scopes itself to relevant file changes to minimize run time, focused on the team's most common failure modes including missing files and assembly issues

AWS Device Farm Migration

  • Migrated from a degraded 4-device local farm (multiple failures due to battery bloat) to 6 device models on AWS Device Farm
  • Eliminated device maintenance overhead, improved reliability, and integrated the new farm into existing Jenkins pipelines

Record & Play

  • Proposed and built live gameplay recording integrated into the existing automation framework, eliminating repetitive manual QA testing
  • Deployed to 3 EA mobile titles, enabling QA teams to replay captured sessions as automated test runs across multiple environments

Additional Test Reporting

  • Extended the automation framework to post results directly to Zephyr, giving QA a live view of test status without manual reporting

Improve Test Automation

  • Replaced hard-coded delays with conditional waits and timeout handling
  • Added intelligent interception of unexpected prompts (ads, rewards, connection issues)
  • Replaced polling with real-time screen state relay, reducing load and improving responsiveness
  • Increased framework uptime from 30% to 95% through systematic elimination of flaky patterns and maintenance debt
  • Ported framework to 5 mobile titles

Software Engineer at Iron Horse Games – Contract (5 months)

Steam Town

  • Ramped up on an unfamiliar codebase and engine (GameMaker) independently, with no onboarding support
  • Upgraded UI with new animations and resolution support
  • Refactored to cut code volume and complexity by over 50%
  • Implemented custom 9-slicing for scalable UI panels where the platform had no built-in support
  • poster combat progression

Superhero Comic Prototype

  • Prototyped smooth comic panel transitions – reframing, brightening, and panning across cells – to drive design discussions

Full Stack Software Engineer at 5th Planet Games (1 year)

Dawn of the Dragons: Ascension

world map battle raid guild

Campaigns Guild Feature

  • Collaborated with designer and engineer on technical design documents for a full guild campaign feature
  • Implemented across server and client: shared map navigation with an energy resource, strategic node defeats to limit event-wide buffs, and automated loot delivery to player inboxes
  • Completed full feature development before the game's sunset

UI

  • Implemented UI from art mockups and wireframes
  • Identified and made UX improvements for clarity, retention, and monetization
  • Converted mobile UI to PC with dynamic scaling and mouseover text

Support

  • Built, tested, and maintained features across the server, client, and admin tools, including bug fixes and code reviews

Software Engineer 2 at Northrop Grumman (6 years)

plane mount pod map

Mission Control Accreditation

  • Led integration environment setup for a 50,000+ man-hour government contract, coordinating hardware and software components across teams
  • Managed a team of 5 engineers
  • Authored and executed the full accreditation test procedure
  • Built a RESTful Java API to forward messages between mission control scripts and firmware
  • Successfully completed accreditation, directly resulting in a contract extension

Mission Control Browser Tools

  • Built browser-based tools through iterative stakeholder collaboration: hardware status visualization (power, diagnostics, temperature), resource allocation for pod components (antenna, filtering, scanning), signal processing pipeline configuration, and platform location tracking over time

Prototype Internal R&D Projects

  • Network visualization using JUNG, procedural device configuration via SNMP, and a minimax-based rule engine for automated network response

Sensor Chassis Test Suite

  • Developed and validated diagnostic test suite for sensor chassis, deployed on an air-gapped network

Sensor Calibration Real-World Flight Testing

  • Validated sensor calibration procedures against real hardware during live flight tests
  • Directed pilot navigation to predetermined antenna coverage points

Generalist Programmer / Co-owner at DoubleA Studios – College Startup (1.5 years)

Kelkom

  • LAN-based medical appointment scheduling and metrics system
  • Deployed on a tablet to replace a hardware unit with blinking buttons

TTRPG Visualization Tool

  • Character manager and visualization tool for table-top RPGs (Primarily D&D)
  • Includes a separate initiative tracking application with status effects and dynamic layout scaling

Windows Taskbar Messaging Tool

  • Broadcast messaging system for posts and advertising in a Windows toolbar
  • Includes tabs to track multiple messaging channels including financial advice and retail coupons

From Space (Twin-stick shooter)

  • 3 unique playable races
    • Junkers generate trash shields, create turrets, and fire rapidly
    • Space snails regenerate, charge forward, and gain a spread shot
    • Saucers turn instantly, fire homing missiles, and fire bullets that shoot more bullets
  • Enemies attempt to dodge projectiles, weaving through on higher difficulties
  • Enemies drop powerup crates

Side Projects

Outside of work I regularly build small games and tools to explore ideas, learn new techniques, or just have fun. None of this is polished or professional-grade work – it's how I stay sharp and curious about the craft.

Online Portfolio (this page)

  • Filter and search experience by technology, with preset views and per-skill ratings and time totals
  • PDF/print export, image lightbox, and hover tooltips showing filter tags per subsection
  • github

Procedural Hex World

  • Infinite procedural world generation using noise-based algorithms
  • Object pooling system that reuses and repositions tiles for optimal performance
  • Draw call optimization through batching and object reuse
  • Horizon shader effects simulating small-planet navigation
  • Instant warp system allowing navigation to any coordinate

FFXI Gearswap Scripts

  • Dynamic equipment optimization system using weighted stat evaluation
  • Real-time adaptation to level changes, situational requirements, and available gear
  • Automatic gear set generation based on current context (MP available, day of week, action type)

Manic Space Bot Repair (GGJ 2020)

  • Gather parts and fix the bots so they can repair the ship
  • Global game jam

How Our Mission Ended (GGJ 2019)

  • Fight or befriend in a quest for stuffium
  • Pathfinding and behavior system for robot NPCs
  • Global game jam

Lumen (GGJ 2018)

Ravenous Void (Ludum Dare 45)

  • Brave the unknown to gather the power to fend off the darkness
  • Procedural world generation
  • JSON-based music
  • ludum dare

Herding Cats (Ludum Dare 44)

  • Armed with a lazer pointer, try to get cats to assist in solving puzzles
  • ludum dare

AI Opponent for a Customized Chess Game

  • Use Negamax algorithm to select best move
  • github

Jigsaw Puzzle Creator

  • Chop any image into puzzle pieces and put them back together again
  • github

Education

Sacramento State

  • Received a bachelor's degree in computer science
  • Worked as an adjunct professor, tutor, and grader covering all undergraduate computer science coursework
  • Represented school in state programming competition

San Joaquin Delta College

  • Received an associate's degree in computer science