Zephan Johnson

Work

A decade of systems that had to keep running while they changed: real-time auctions, identity in the request path, multi-tenant conversion services, and the platform under a game studio.

Résumé (PDF)

Flagships

Three systems, in detail

Unity · 2023–2025

Unity Audience Hub

Resolving identity inside a live auction at over a million queries per second, after mobile advertising lost its identity layer.

Post-ATT the IDFA was gone, and brand buyers had no reliable way to value mobile inventory. That shows up as low bids or no bids, and it hit banner hardest. I owned the technical strategy for user identity on the Exchange, under three constraints: the lookup had to fit inside the auction’s latency budget on the hot path, it could not load the origin store in proportion to request volume, and opt-in had to be evaluated on every single request for GDPR, CCPA, and ATT. The answer was a multi-layer cache — in-process hot cache, distributed tier, source of truth — so tail latency stayed in budget and the origin never saw anything close to full traffic.

Two decisions carried the design. I chose Valkey over Aerospike for the distributed tier on throughput and cost per operation at our access pattern. And I refused to let consent and segment data share a caching strategy: a stale segment costs a rounding error of yield, a stale consent decision is a compliance violation, so the two got different guarantees by the cost of being wrong rather than by which system they lived in. The rollout was gated on the experimentation platform — identity-randomized A/B measured to statistical significance on net revenue and impressions — rather than on a dashboard that moved after launch.

My work was the Exchange-side identity service. Banner net revenue rose 30%, and spend from key partners rose as much as 60%.

  • Go
  • Valkey
  • Multi-layer cache
  • GDPR / CCPA / ATT
  • Experimentation

Relativity · 2016–2020

Document Viewer

A green-field viewer rewrite, and the multi-tenant service that gave it something to render.

The front end. A green-field single-page refactor of Relativity’s document viewer, the surface where legal reviewers read every document in a case. It shipped with public front-end APIs so customers could build their own integrations against it instead of asking us for hooks. I built the MVP of the rewritten reviewer interface in under a week for the opening keynote at Relativity Fest 2019.

The back end. The viewer needed something to render, and that was Relativity’s first multi-tenant cloud service — I was one of its core contributors. It consumed from a message broker, converted native files into HTML5 for browser review, and published the result back to the waiting user. Native files meant everything a legal hold produces: emails, PDFs, Word documents, text messages. Median end-to-end was under a second, with an honest long tail on documents running hundreds of pages.

The interesting part is the queue. One service handled bulk conversion of entire directories and on-the-fly requests from reviewers actively waiting — classic batch-versus-interactive contention against a sub-second interactive target. A priority queue kept the bulk work from starving the person sitting there, and the service autoscaled on queue depth rather than CPU, which treats autoscaling as a latency mechanism instead of only a cost one.

  • C#
  • Single-page app
  • Multi-tenant
  • Message broker
  • Priority queue
  • Autoscaling

Battle Creek Games · 2026

Community Events

A shared odometer for a live player base, and a first run designed to measure rather than to win.

In-game event screen from No Limit Drag Racing 2. A Community Mileage Challenge panel shows a shared odometer reading 624,836 miles, the player's own contribution of 7 miles, and three reward tiers: Bronze at 600,000 miles marked complete, Silver at 700,000 marked current, and Gold at 800,000 locked.
The community odometer as players saw it, from a shipped public build of No Limit Drag Racing 2. Bronze cleared inside the three-day window; Silver and Gold did not.

A schedulable community event. Players join, race, and their mileage accrues to one shared odometer; if the community clears the Bronze, Silver, and Gold thresholds, the rewards unlock for everyone who joined, not just the players who logged the most miles.

I built a new event service with a cron-driven schedule that opens and closes the window, and surfaced event state through APIs the game client consumes via the SDK. In-game race telemetry flows to Kafka and onward to the data lake; the event service subscribes to the race-completed stream and aggregates from it, with Redis holding each player’s own contribution alongside the community total. Those two numbers have different requirements — the community total can lag a few seconds and nobody notices, while a player’s contribution gates their reward eligibility and has to be right — which is the same guarantees-by-data-class call the Audience Hub needed, in a much smaller system.

The calibration decision is the part worth reading. A shared goal has an ugly failure mode: set the threshold too high and every participant gets nothing, so on day one the feature reads as broken to the entire player base. The threshold could not be guessed, because it depends on aggregate throughput nobody had measured. So the first run shipped deliberately unmarketed, on a low-traffic day, with week-over-week race data setting the initial tiers. The event measured the community’s floor before any goal was promoted as real. The deliverable was a reusable scheduling and aggregation service plus a number nobody had.

  • Go
  • Kafka
  • Redis
  • Live ops
  • Unity / C# client

Selected work

Projects from the last decade

Battle Creek Games · 2026

Studio platform

Platform engineering for an 18-person studio across a three-title Unity and C# portfolio. I moved the games onto a server-authoritative architecture and replaced Unity Analytics with an in-house telemetry service in Go, streaming events through Kafka to the data warehouse so the studio owned its own pipeline instead of renting it. I also shipped the store-compliant React Native client on iOS and Android. Infrastructure spend came down $360k a year, and AI tooling spend was cut in half.

  • Go microservices
  • Kafka
  • React Native
  • iOS / Android

Unity · 2020–2025

Ads Exchange

Real-time programmatic auctions at 1M+ QPS on Kubernetes in GCP. I ran the cost work as a portfolio sequenced by blast radius, cheapest and safest first: CPU and memory profiling before buying capacity, a rewrite of the capture service’s logic, Aerospike to Valkey, ten-plus critical services onto a cheaper VM type with no downtime, and a gRPC cutover whose real win was the zone-affinity load balancing it unlocked. Infrastructure went from $91k/day to $60k/day, a 34% cut, while request volume grew 25%. Dynamic floors and consolidated bid requests raised average bid price more than 8% quarter over quarter.

  • Go
  • GCP
  • Kubernetes
  • Kafka

Unity · 2020–2023

Ad Supply Sync

I designed and planned the refactor of the ad supply syncing service — the path that keeps placement inventory in step with demand partners — which generated over $16M a year in incremental Google AdMob spend. I also integrated an experimentation platform into the Exchange so revenue-critical auction changes shipped behind identity-randomized A/B tests instead of behind conviction.

  • Distributed systems
  • Kafka
  • Experimentation

Relativity · 2016–2020

Document Exporter

Legal teams export whole case sets, and the legacy exporter pulled documents one at a time. I parallelized the downloads, which let users export millions of documents 75% faster.

  • C#
  • Concurrency

Experience

Where the work happened

  1. 2026

    Principal Software Engineer, Head of Platform

    Battle Creek Games

  2. 2023–2025

    Software Engineering Manager, Unity Exchange

    Unity

  3. 2020–2023

    Senior Software Engineer, Ads

    Unity

  4. 2016–2020

    Software Engineer I to II

    Relativity

  5. 2016

    B.S. Computer Science

    Illinois Institute of Technology