Raphael Kim

AI Systems EngineerConcept → buildSoftware + hardware

AI Systems Engineer. From concept to working system.

I conceive, design and build AI-powered systems — connecting models, tools, software and hardware, from the first idea to a working product.

Voice systems at Snips / Sonos. Collaboration prototypes at SAP. Physical interaction research at MIT Media Lab. Today, I bring that experience to local AI, agentic workflows and connected objects.

Selected work

Four systems I conceived and built. Different interfaces, the same concern: make the whole loop work.

What I bring to a team

I work across the boundaries where a promising demo becomes a usable system: interaction, orchestration, inference, persistent state, embedded hardware and deployment. I can define an experience, make the technical choices and build the pieces that let someone actually use it.

The projects here originate in my own concepts and design work. I take them through implementation and iteration; professional contexts and team contributions are identified where relevant.

Built in different contexts

  • Snips / Sonos — voice and product prototyping. Contributed to the product definition and UX specification of Sonos Voice Control. Conceived and built contextual listening prototypes spanning interaction, lyrics retrieval, sensing and ESP32 firmware.
  • SAP — collaboration. Conceived the idea, built the prototype and developed the OS X application within the Chairman’s project team. The concept later evolved into CoScreen.
  • MIT Media Lab — physical interaction. Created SPrAyCE, a spray-based interface for drawing in mid-air, connecting a physical gesture to digital creation.
  • Independent R&D — AI systems. Design, build and operate the local inference, voice services, agent integrations and interfaces behind the projects in this portfolio.

How I build

Start with a use case. Make the whole loop work. Then find the weak boundaries: ambiguous requests, missing context, unavailable services, unsafe actions and outputs that cannot be verified.

I use models where interpretation or generation helps, and explicit software contracts where correctness matters. That can mean a source-backed answer, a reviewed diff, an event ledger or a hardware control loop that keeps working without the model.

My local setup

The local machinery behind my projects. A small model handles simple requests, with a larger model taking over when needed. Dedicated models handle perception and voice.

LOCAL AI / SYSTEM MAP01 — 03
Telegram / terminal / services
/ ESP32 · voice endpoint
AGENT / AGENT01

Hermes

Plans, codes & calls tools

Dedicated VM · terminal & workspaces
ROUTING / SYNAPSE

The right capability

Intent, media assets & service APIs

LLM gateway · automatic text routing
01 / REASONING

Spark cluster

2 × ASUS GX10
NVIDIA GB10

IA01ConnectXIA02
MODEL

Qwen 3.8
Flash Next

NVFP4 · SGLang · TP2

Complex requests, tools & long contexts
256K context · 128 GB unified memory / node
02 / PERCEPTION

Multimodal node

Workstation
NVIDIA RTX 5090

IMAGEAUDIOVIDEO
MODEL

Qwen3-Omni
30B · A3B

NVFP4 · Thinker

Vision & media understanding
Available when the workstation is free
03 / FAST TEXT + VOICE

Everyday AI & speech

MS03 · MS-02 Ultra
RTX PRO 4000 Blackwell SFF

QUICK ANSWERSSPEECH → TEXTTEXT → SPEECH
FAST TEXT MODEL

MiniCPM5 2B

BF16 · DSpark acceleration · SGLang

SPEECH MODELS

Qwen3 ASR 1.7B
Qwen3 TTS 1.7B

Transcription · voice synthesis

Simple text requests & dedicated speech
Independent of the multimodal node
Simple text → MiniCPM. Complex or uncertain → Qwen. The gateway checks small-model responses before returning them and hands over to Qwen when needed, including if MiniCPM is unavailable. Tools and long contexts go directly to Qwen. Multimodal analysis and speech keep their dedicated models.
INFERENCE AT HOME