Full-stack Software Engineer — Game engines, real-time backends, native apps, AI in production

Raffael Choi

I build complete systems rather than slices of them - an MMO client in Unreal, a voice agent running on the customer’s own hardware, a tournament platform that takes its scores out of the running game.

Open to new work — Vienna, Austria

200k+
players at peak on Turtle WoW
lead PvE developer, 2019 - 2023
371
opcodes in an MMO client
Eternal Crossing, in C++
10
shipped and running
of fourteen written up here
10
languages in production
TypeScript, Rust, C++, Python, Kotlin and five more

Selected work

Things I built and shipped

2025 — Deployed at customers

Frostphone

AI telephony that runs entirely on the customer’s own hardware

A voice agent that answers the phone for doctors’ practices, law firms and tax advisors, running entirely on hardware in their own building.

12 services
built and run by one person
0
external services hear the caller
6 models
vetted, each with its VRAM cost

Frostphone, in detail — one call, end to end

What happens between “hello” and the answer

  1. 01

    A call arrives

    The number the customer already publishes, over a SIP trunk into their own PBX. Nobody has to be told to ring a different line.

  2. 02

    LiveKit takes the audio

    The call becomes a real-time media stream. Everything after this point is on a clock, because a stall is not a slow page - it is somebody holding a phone and hearing nothing.

  3. 03

    Whisper turns speech into text

    This is the step where a cloud product would post the audio to somebody else’s API. There is no such call to make here: the model runs on a GPU in the customer’s own building.

  4. 04

    The language model answers

    It gets whatever VRAM the two speech services leave behind - six gigabytes of a twelve-gigabyte card - and a bigger card simply buys a stronger model. Not a reasoning model, though: thinking tokens reach the caller as silence.

  5. 05

    The reply is spoken back

    Neural synthesis, back down the line the call came in on. The caller hears an answer, and the audio never left the building.

Twelve containers, all of them on hardware the customer owns. On a phone line the latency budget is the specification, not a target.

The rest of it

Other work

2019 — Shipped

Turtle WoW

Four years owning every raid, dungeon and boss encounter on the largest Classic+ server in the world

200k+
concurrent players at peak
4 years
owning every PvE encounter

C++ / SQL / VMaNGOS / MySQL / Encounter scripting

2026 — In development

Eternal Crossing

An MMO client written from scratch in Unreal Engine 5

371
protocol opcodes, both directions
57
interface screens, login to auction house

C++ / Unreal Engine 5 / UMG / Python / Binary protocol

2021 — Working

Nexto Bridge

A reinforcement learning policy driving a live Rocket League client at frame rate

250 ms
watchdog back to manual
0
online matches it can enter

Python / PyTorch / TorchScript / C++ / Binary IPC

2025 — In production

Frostcord

Self-hosted team communication with end-to-end encryption

1 call
provisions a licensed instance
230
permissioned RPC procedures

TypeScript / React / Node.js / tRPC / MediaSoup

2026 — In development

BoostBracket

Tournament platform that reads the live score out of the game itself

0
database calls in the bracket rules
1 day
life of a live-score token

TypeScript / Fastify / Next.js / Socket.IO / Prisma

2026 — In development

Frostify

An Android music player with no backend of its own

28
address ranges refused
0
servers I operate

Rust / Tauri 2 / Vue / TypeScript / Kotlin

Stack

What I work with

Languages

  • TypeScript
  • Rust
  • Python
  • C++
  • PHP
  • Kotlin
  • Ruby
  • Bash
  • SQL
  • Lua

Game engines & systems

  • Unreal Engine 5
  • UMG
  • C++ gameplay programming
  • Binary wire protocols
  • Entity streaming
  • Server emulators (VMaNGOS)
  • CMake

Backend & real-time

  • Node.js
  • Bun
  • WebRTC
  • LiveKit
  • SIP telephony
  • Socket.IO
  • Laravel
  • Drizzle ORM
  • PostgreSQL
  • MySQL
  • SQLite
  • Redis

Frontend

  • React
  • Vue
  • Next.js
  • Astro
  • Tailwind CSS

Native & mobile

  • Tauri 2
  • Electron
  • Android (Kotlin)
  • MediaSession & foreground services
  • Widevine EME
  • Raspberry Pi

AI & machine learning

  • Local LLM inference (Ollama)
  • Speech recognition (Whisper)
  • Neural text to speech
  • Tool & function calling
  • PyTorch / TorchScript
  • VRAM & latency budgeting
  • Prompt and role design
  • n8n workflow automation

I build and operate systems around models: local inference, real-time pipelines, latency and VRAM budgets, and what happens when the model is wrong. I have not trained foundation models.

Infrastructure & security

  • Docker & Compose
  • Proxmox / KVM
  • Puppet
  • Linux (Ubuntu, Debian)
  • CI/CD
  • Cloudflare Pages & Workers
  • Caddy / reverse proxies
  • End-to-end encryption
  • ed25519 signing
  • SRP6
  • TOTP two-factor
  • Content Security Policy
  • systemd

Hiring

Currently open to new work

Vienna, working with teams across Europe and the US. I am useful anywhere between a rendering loop and a deployment pipeline. Email is the fastest route and I answer within a day.