Unity client programmer · YATAV · 2021 – present

Seongju Kang강성주

Five years of a live Unity client, a three-person mobile game, and AI used in both the product and the tools.

Unity client programmer. For five years at YATAV I built and operated the Unity client of a metaverse counseling platform: simultaneous PC, Android, iOS and macOS releases, real-time features on Photon, Vivox, Agora and Addressables, and the delivery pipeline from installer to CDN. These days I use AI both inside the product (AI NPC, STT transcripts, AI summaries) and in the development process. I built my own agent, moved work to local models to cut the token bill, and wrote Unity-specific build automation. I am also building PlanEat, a three-person mobile game heading for Google Play.

02

Awards & outcomes

Awards and coverage earned by the products I work on. They belong to the company; my part is noted per item.
MWC25 GLOMO Award: Best Mobile Innovation for Enhancing the Lives of Children and Young People
2025.03MWC25 GLOMO Award: Best Mobile Innovation for Enhancing the Lives of Children and Young PeopleGSMA · SKT × YATAV MetaForestMy part 메타포레스트 Unity 클라이언트 개발
2024.112024 Metaverse Innovation Award: Excellence Prize과학기술정보통신부 주최 · 머니투데이·한국메타버스산업협회 주관
KT "Warm Tech Plus" top company: Minister of SMEs and Startups Award
2023.11KT "Warm Tech Plus" top company: Minister of SMEs and Startups AwardKT · 중소벤처기업부
  • 2026.06AEGIS: GS Certification Grade 1 · TTA · My part: GS 인증 결함 1·2·3차 대응
  • 2025.09Selected for the Ministry of SMEs 'Hyper-gap Startup 1000+' Micro DIPS program · 중소벤처기업부 · 과제: AI 상담사 트레이너
  • 2024.108th Seoul Forest Social Venture Expo: Grand Prize, Scale-up division · 성동구 · AI 얼굴인식 + 메타버스 상담 솔루션 · My part: 수상 제품의 Unity 클라이언트 개발

Videos (company YouTube channel)

45 more awards, articles and videos

Awards · certifications · selections

  • 2024.05Selected for three accelerators: KT&G, SKT ESG Korea, Hyundai H-ondream · KT&G · SKT · Hyundai
  • 2024.04Seoul Wee Center metaverse counseling contract · KOTRA export program · 서울시교육청 · KOTRA
  • 2023.11MetLife Stage demo day: 4th place · MetLife
  • 2022.05Innovation Voucher program · 중소벤처기업부
  • 2021.122021 Chungnam XR Metaverse Business Hackathon: Grand Prize, team MetaFoRest · 충남 · 호서대 게임소프트웨어학과 · My part: 팀 구성원
  • 2021.12Inno-Biz technology innovation certification · 중소벤처기업부
  • 2022 Metaverse ESG Awards ceremony2022 Metaverse ESG Awards ceremony
  • Minister of SMEs and Startups award certificate (Nov 28, 2023)Minister of SMEs and Startups award certificate (Nov 28, 2023)
  • SK Telecom exhibition boothSK Telecom exhibition booth

Videos (company YouTube channel)

Press

03

Strengths

  • 01I replace foundations in a live service.Unity 2021 → 6, Photon PUN → Fusion and voice Photon Voice → Vivox → Agora were swapped without cutting users off, because PC and mobile QA lists (77 items for the August 2023 launch) and an emergency-release routine were in place first.
  • 02I build the real-time modules myself.Screen sharing (WebRTC with Photon RPC ownership), 1:1 video chat, a multi-user whiteboard, expression tracking, voice (Agora, Vivox) and the Photon CCU split: the real-time features were mine.
  • 03I own the delivery path end to end.From a WPF installer/updater in 2021 to an Electron launcher with 6-way parallel CDN downloads in 2026, one person shipped and announced four platforms and store reviews: Slow downloads in South Africa and Taiwan were solved by swapping servers and storage.
  • 04I fix causes, not symptoms.The voice dropouts were not Agora but Photon disconnects amplified into 30-second silences by our code; the launcher update failures were not the server but a missing HTTP cache invalidation. When a measurement changes the diagnosis, I say so.
  • 05I work toward building together.Release decisions go through PC and mobile QA lists, release notes include known issues and workarounds so institution staff can act, and handovers leave a HANDOFF document the next person can pick up.
04

Projects at work

YATAV · Unity Client ProgrammerJul 2021 – present

Four years developing and shipping the Unity client of a metaverse counseling platform; since 2026 also the Electron launcher, web and backend, an AI security product, an on-premise LLM service and an internal cost dashboard.

  • MetaForest Client: from launch to 3.x

    Four years building and shipping the metaverse counseling client: installer, screen sharing, video chat, whiteboard, transcripts, and the Vivox migration

    Unity client development · production releases · Unity · 2021 – 2025

    2021.10 – 2025.12
  • MetaForest Launcher

    Built a Windows and macOS desktop launcher from scratch and moved distribution to a CDN

    Design, implementation, deployment · Electron · Windows / macOS

    2026.06 – 2026.08
  • MetaForest Unity Client

    A Unity 6 remake of the client, run side by side on PC and mobile in the same room

    Client development · Unity · Photon · Agora

    2025.11 – 2026.08
  • AEGIS: AI Security Gateway (AI DLP)

    QA-driven development and rollout on a product that judges and blocks prompts headed for external AI services

    QA-driven development and rollout · Certification test defects · AI DLP rollout in the financial sector

    2026.06 – present
  • Independent Intelligence: Air-gapped Workplace AI

    Pre-launch QA, gateway fixes, a full server rebuild and operations for an on-premise AI appliance

    QA · gateway development · server rebuild and operations · LibreChat · LiteLLM gateway hooks · vLLM / Ollama · Jetson

    2026.07 – present

Other work: MetaForest Web & Backend, Cloud Cost Reduction · Cost Dashboard, YATAV Company Blog, University AAC Chatbot Backend, NICE Identity Verification S2S Migration

05

AI

Writing and verifying code with AI tools is daily work. Below are things I can show as artifacts rather than claims. The code is taken from the repositories as is (comments are in Korean).

  1. 01Built my own agent: seongjuclaw

    Python · Claude API · Ollama · Jul 2026 –

    What
    An agent that uses the terminal, files and the web as hands. Tool loop, a SKILL.md skill system, session save/restore, serverless local RAG (fastembed), local models via Ollama, a closed-network mode that blocks every outbound call, a desktop GUI.
    Why
    To direct tools like Claude Code well, I wanted to know how they run inside: tool-call ordering, context management, the safety conditions for parallel execution.
    Verified
    RAG and the tool loop were run end to end with a real model. The GUI was run in closed-network mode with a local model (gemma4 12b) reading files and answering, captured in September 2026.
    seongjuclaw/agent.py: safety conditions for parallel tool execution (excerpt)
    def _run_tools(self, tool_uses):
        """한 턴에 요청된 도구들을 실행.
        연속으로 붙어 있는 '병렬 안전'(tools.PARALLEL_SAFE) 도구는 묶어서 동시에 돌린다 —
        파일 여러 개 읽기·grep 여러 번 같은 탐색이 대부분이라 체감이 크게 빨라진다.
        쓰기·부작용 도구를 만나면 거기서 끊어 순서를 지킨다: read→edit→read 처럼
        앞뒤 순서가 의미를 갖는 요청이 뒤집히면 안 되기 때문."""
        n = len(tool_uses); results = [None] * n; i = 0
        while i < n:
            j = i
            while j < n and tool_uses[j].name in tools_mod.PARALLEL_SAFE:
                j += 1
            if j - i < 2:  # 병렬 이득이 없으면(0~1개) 그냥 순차
                results[i] = self._one_tool(tool_uses[i]); i += 1; continue
            with cf.ThreadPoolExecutor(max_workers=min(4, j - i)) as ex:
                futs = {ex.submit(self._one_tool, tool_uses[k]): k for k in range(i, j)}
                for f in cf.as_completed(futs):
                    results[futs[f]] = f.result()
            i = j
        return results
  2. 02Moved work to local models to cut the token bill

    Ollama · llama.cpp · vLLM · fastembed · 2026

    Why
    Every extra API call cost money. Research, summarizing and classification do not need top-tier models, so they moved down to local ones.
    How
    My own agent runs Ollama on the same tool loop as Claude, so only the model swaps, and a closed-network mode blocks every outbound call. RAG runs serverless on fastembed and numpy, so no embedding API either.
    At work
    The air-gapped AI product runs entirely on local models (vLLM, Ollama). Moving embeddings to the GPU cut the first response from 20 s to 1.2 s, and the AI security product runs its judgment model locally on llama.cpp.
    Limits
    A local 9B loses formatting on long context, so I split work by task between local and API.
  3. 03Built Unity-specific build automation

    Python · Unity batch mode · Aug 2026

    Why
    Five years of CI kept tripping on the same things: exit code 0 on a failed build, -quit conflicting with test options, license seats never returned.
    How
    I wrote the traps you only learn by getting burned as module documentation first, then let the agent implement. Domain knowledge from me, implementation speed from AI.
    How far
    The verdict logic that trusts the build report and log signals over the exit code is pinned by tests. This Mac does not have that Unity version, so it was never run end to end on a real project, and I say so.
    A verdict that does not trust the exit code (excerpt)
    def verdict(summary, returncode, *, report_result=None):
        """실행이 성공인지 최종 판정한다.
        우선순위는 빌드 리포트 > 로그의 batchmode 신호 > 종료코드 순이다."""
        if report_result is not None:
            if report_result != "Succeeded":
                return False, f"빌드 리포트 결과가 {report_result}"
            if summary.errors:
                return False, f"빌드는 성공했지만 로그에 에러 {len(summary.errors)}건"
            return True, "빌드 리포트 Succeeded"
        if summary.batchmode_result == "failure":
            return False, summary.abort_reason or "배치모드가 실패로 종료"
        if returncode != 0:
            return False, f"종료코드 {returncode}"
        if summary.errors:
            # 여기가 핵심: 종료코드는 0인데 로그엔 에러가 있는 상태.
            return False, f"종료코드는 0이지만 로그에 에러 {len(summary.errors)}건 (배치모드 종료코드 오탐)"
        return True, "정상 종료"
  4. 04QA, build and operate AI products

    AEGIS · Independent Intelligence · AAC chatbot · 2026

    AEGIS
    An AI security gateway (AI DLP). GS certification defect follow-ups (one defect = one PR); for a financial-sector rollout, a pre-delivery checklist measured by hand surfaced role-boundary, audit-ledger and Korean PII detection defects, which I fixed.
    Independent Intelligence
    An air-gapped workplace AI. Pre-launch QA, gateway hook and document tool fixes (0% → 99% over 100 runs), and a rebuild of the dead server on a Jetson with two domains live.
    Rule
    Agents may write code but never deploy. Irreversible actions are pressed by a person.
    seongjuclaw/skills/code-review/SKILL.md: an example of a procedure given to AI (excerpt)
    ---
    name: code-review
    description: 코드나 변경사항(diff)을 리뷰할 때. 버그·정확성 위주로 살펴보고 우선순위를 매겨 보고합니다.
    ---
    1. 대상 파악: 특정 파일이면 read_file, 변경사항이면 run_bash로 git diff를 확인합니다.
    2. 정확성(경계 조건·null·off-by-one·예외) → 리소스 → 동시성 → 보안 → 단순화 순으로 봅니다.
    3. 발견 항목을 심각도 높은 순으로: [심각도] 파일:줄 — 요약 / 재현 시나리오 / 제안 수정
    주의: 확실하지 않은 항목은 "추정"이라고 밝히세요. 스타일 문제는 마지막에 짧게.

When I hand work to AI

  • Rules go in documents. CLAUDE.md and HANDOFF.md per repo, SKILL.md for the agent. What not to do comes first.
  • Domain knowledge from me, implementation together. Traps you only learn by getting burned are written down first. Not knowing that a dev auth bypass silently falls back to admin makes you read a permission test backwards.
  • Results get re-checked. Build, run, screenshot, measure. "Done" only after I have seen it.
  • Irreversible actions stay human. Deploy, publish, delete, pay: never the agent.
06

Personal projects

  • PlanEatJJJ Studio · team of three

    A mobile survival game where you grow by swallowing space junk up to planets: team of three, preparing a Google Play release

    Unity 6 · C# · URP · UGS

    2026
  • girlsXzombies

    A 2021 tower-defense game project

    Unity · C# · HLSL

    2021
  • SeongjuClaw성주클루

    An AI agent desktop app that runs Claude and local models on the same tool loop, with a closed-network mode

    Python · pywebview · Claude API · Ollama

    2026
07

Timeline

2026
A financial-sector AI DLP rollout and GS certification defect work on AEGIS, operating and rebuilding an on-premise LLM chat service, the MetaForest Electron launcher and CDN migration, the NICE S2S identity migration, a cost dashboard. Personal: the three-person mobile game PlanEat (Google Play release prep) and the seongjuclaw agent.
2025
MetaForest 3.0 overhaul, Unity 6 and Photon Fusion migration, Photon Voice → Vivox, AI summaries for transcripts. MWC25 GLOMO Award.
2024
Whiteboard with real-time sync, STT transcripts and the move to Naver Clova, social login, deep links and an installer renewal, MWC 2025 preparation with SKT. Metaverse Innovation Award.
2023
Official launch with a Seoul Wee-center pilot, the August store release on iOS and Android, avatar customization, video chat, a GPT-based AI NPC demo for CES 2024.
2022
Screen-sharing module, 0.1.0 and 0.5.0 updates, per-institution trial builds, the mobile version and Addressables, the first mobile production release.
2021
Joined in July. First institutional deployment in October, a custom installer and updater, sprint-1 pilot QA.

Full timeline (84)

08

Tools

Unity · Game
Unity 2021 LTS → 6C#URPNew Input SystemAddressablesPhoton PUN · Fusion · VoiceVivoxAgoraMediaPipePlastic SCM
Platform
Windows · macOS · Android · iOS 빌드·스토어 심사WPF · Electron 런처S3 · CloudFront 배포GitHub Actions
AI
GPT · Claude APIWhisperNaver Clova STTOllama · vLLMRAG에이전트 도구 루프
Languages
C#PythonTypeScriptKotlinSwiftDartSQL
Backend · Infra
Node.jsMySQL · PostgreSQLWebSocket · WebRTCAWS EC2 · S3 · LambdaCloudflare WorkersDockernginx