I design and run the CI/CD and cloud infrastructure behind multi-platform game development: Unreal, Unity, and C++ pipelines, self-hosted build farms on AWS, and automated releases to Steam. Currently at AccelByte, embedded with 2K Games' platform engineering teams.
Game pipelines are a different animal: huge engine sources, console SDKs, hour-long compiles, and expensive runners. This is where I work.
I build and maintain GitHub Actions pipelines for game SDKs across multiple engines and language stacks, including monorepo migrations, selective builds that only trigger affected projects, and build orchestration across engine versions.
I provision and operate self-hosted runner fleets on AWS: golden AMIs with Unreal Engine and console SDKs pre-baked, dynamic runner pools that scale with the queue, and the Terraform underneath it all.
I automate the last mile: reusable workflows that package builds and deploy them to Steam, and release automation that publishes monorepo output back into Perforce streams for downstream teams.
Root-cause analysis on flaky infrastructure, observability dashboards, cost alerting, and build-queue design that stops redundant builds from burning money. Reliable and cheap are the same discipline.
All roles at AccelByte, a backend and tooling company for game studios, including long-term embedded assignments with 2K Games' core technology teams.
Continuing at 2K on the Platform Engineering team, working on internal platform infrastructure, CI/CD standardization, and deployment tooling that serves engineering teams across the organization, including Argo CD and GitOps-based delivery workflows for platform services on Kubernetes.
Owned CI/CD for 2K's cross-platform game SDK: migrated pipelines from Jenkins to GitHub Actions, drove the monorepo CI/CD migration for Unreal and Unity, built the multi-console runner fleet, and shipped release automation to Steam and Perforce. Highlights below.
Automated game builds across six platforms and cut infrastructure spend by ~40% through smarter AWS resource allocation. Replaced legacy Unreal CI/CD with Horde, migrated Perforce Helix Core from on-premise to cloud for globally distributed teams, and scripted repeatable provisioning in Bash and PowerShell so environment setup stopped being a bottleneck.
Ran resilient AWS environments for core backend services: Kubernetes workloads on EKS, unified logging and observability with Prometheus, Grafana, and the EFK stack, and structured post-incident reviews that turned outages into fixes instead of repeats.
A representative sample from Nov 2025 to Jun 2026. Internal identifiers omitted; every item is work I owned or co-owned end to end.
Migrated the SDK's JavaScript build, test, and deploy pipelines from Jenkins to GitHub Actions with modular reusable workflows shared across repositories, then safely decommissioned the legacy Jenkins instance, backups and all.
Core contributor to migrating Unreal and Unity SDK pipelines into a monorepo: selective builds that detect changed projects and trigger only what's affected, a build orchestrator spanning multiple engine versions, and full multi-platform build and test coverage.
Designed and implemented a PR build-buffer with delayed triggers so rapid-fire commits stop spawning redundant expensive builds, plus a three-tier priority queue (release → nightly → PR) so critical builds jump the line. Documented as technical design docs, then shipped.
Built and maintained golden AMIs and self-hosted EC2 runner pools for Unreal Engine 5.4-5.7 with full console SDK provisioning across Windows, Linux, PlayStation, Xbox, and Switch, including dynamic runners that scale on demand.
Turned Steam deployment into a reusable workflow adopted across Unreal, Unity, and C++ repositories, with verification steps so teams can see exactly what shipped. Built Perforce release automation that publishes monorepo builds into the right streams automatically.
Traced mysterious runner health failures to EBS gp3 throttling, confirmed it with AWS Support, then fixed it with IOPS and throughput tuning in Terraform. Separately root-caused unstable CI actions to GitHub App token rate limiting and restructured token generation to eliminate it, and led a fleet-wide action upgrade ahead of the Node.js 20 deprecation.
Built a CI/CD status dashboard on GitHub Pages covering build health across SDK repositories, set up AWS Budget cost alerts flowing into Slack, and automated mirroring of Unreal Engine source from Perforce into artifact storage so pipelines stop depending on fragile upstream fetches.
Ran a hands-on evaluation of Epic's Horde as a build automation platform for the SDK monorepo: local deployment, constraint analysis, and a cost-versus-benefit write-up to inform the team's build-platform direction.
I got into infrastructure because I like the feeling of a system that just works, and I stayed because game development is where that feeling is hardest to earn. A game build touches engines measured in hundreds of gigabytes, proprietary console toolchains, and runners that cost real money every minute they idle.
My approach is simple: find the root cause, fix it once, then automate it so nobody has to think about it again. Whether that's a throttled EBS volume masquerading as a runner failure or a build queue quietly wasting compute on stale commits, I'd rather spend a day understanding a problem than a month patching its symptoms.
Outside of work hours I stay close to games from the other side: I co-developed an award-winning game at Yogyakarta Global Game Jam 2024. Building a game made me a better engineer for the people who build them.