Applied AI engineer

Seoul --:--

Models that move the numbers.

Fig. 0 Self-attention over the headline, layer 4 head 2. Hover or tap a token.

I ship machine learning that changes a number someone already cares about: fewer tickets, faster answers, graders who agree. Results first, then the outputs you can play with.

Currently shipping retrieval and evals for small teams. Booking work from next quarter.

§1 Results

Selected Work

Each one opens with what changed after it shipped. Underneath is a real output from the model. Go ahead and poke it.

01Parcel courier, 9 people in support

−41%

support tickets that reach a human

shippedwk 1wk 18
before 100%after 59% ↓

Retrieval Atlas

Answers support questions from the help centre and old tickets, and cites every source it used.

RAG · pgvector · WebGL

retrievalwebgl

Result 01 Retrieval Atlas, in production

question asked in week 9

Can I still change my address after the parcel ships?

Yes, for about a day. Open the tracking page and edit the address before the parcel reaches the regional hub. Customers who did this were rerouted at no cost.

answered in 1.4 s, no human needed, customer rated it 5/5

02Hearing-access nonprofit

38ms

per word, offline, on a 2021 phone

shippedwk 1wk 18
before 420msafter 38ms ↓

Pocket Transcriber

Speech to text that never leaves the phone, built for people who cannot send audio to a server.

WebGPU · Whisper · Canvas

on-devicespeech

Result 02 Pocket Transcriber, in production

line 2 subway, 82 dB, phone in airplane mode

Euljiro confidence 0.58, also heard: Uljiro, Eulji-ro

03Customer-service AI team

0.91

grader agreement, up from 0.62

shippedwk 1wk 18
before 0.62after 0.91 ↑

Eval Garden

Side-by-side outputs graded by people. Disagreements surface first, so the rubric gets sharper every week.

LLM evals · React

evalstooling

Result 03 Eval Garden, in production

prompt: “My mug arrived in pieces.” Which reply would you ship?

Tap one. Five human graders already did.

04Print studio campaign

12.4k

doodles turned into prints in launch week

shippedwk 1wk 18
before 300/dayafter 2900/day ↑

Diffusion Sketchpad

Draw a rough shape and a small model denoises it into a print, one step at a time, right in the browser.

Diffusion · Canvas · Spatial UI

generativecanvas

Result 04 Diffusion Sketchpad, in production

a visitor’s doodle, launch week, 24 denoising steps

step 17 / 24

prompt: “koi, risograph print”. Drag to denoise.

§2 Outputs

Same prompt, five temperatures.

The part of the job that is just fun. Turn it up and watch a careful model become a creative one, then a slightly unwell one.

> Name a café run by a language model.

Attention Is All You Brew.

Underline strength is how likely each token was. Hover or tap one.

temperature0.8
boringunhinged

first token, softmax(logits / 0.8)

  • The79%
  • Latent14%
  • Attention4.5%
  • Gradient1.6%
  • Tokenspresso0.7%

§3 Capabilities

Three figures you can run.

Tap to drop an optimiser
SGD + momentum 0.86loss 0.950
A contour map of a loss surface. Tapping it releases a gradient descent optimiser that rolls into the nearest minimum.

Fig. 1 WebGL fragment shader, one draw per theme

WebGL Effects

Shaders that make model internals visible: loss surfaces, attention maps and activations, drawn on the GPU.

Tap the map. The marker is gradient descent with momentum.

Canvas generative art visualization: the 63 Building at night, denoised from pure noise
t =    0ᾱ = 1.000

Fig. 2 Canvas 2D, cosine noise schedule, 1000 steps

Canvas Generative

Generative systems you can scrub: diffusion samplers, particle fields and noise, composed in real time.

Drag to turn the space
168 points · 3 dimsdrag to rotate
A three dimensional scatter of embeddings in four clusters that can be rotated by dragging.

Fig. 3 Embeddings projected to three dimensions

Spatial UI

Interfaces for high-dimensional data: embedding maps you can turn, cluster and search by hand.

§4 Process

Technical approach

step 0eval lossship

Tools & Technologies

as the tokenizer sees them

  • PyTorch6643,
  • JAX10820,
  • Transformers20738,
  • vLLM20943,
  • ONNX Runtime15839,
  • WebGPU2337,
  • WebGL38950,
  • Three.js38728,
  • TypeScript13383,
  • Next.js13370,
  • Postgres42239,
  • pgvector31070

§5 Contact

Let's build something

Tell me what you are building and where the model falls short. I read every message.

or write directly
What is it about?

Goes straight to my inbox. No newsletter, ever.