nico.dev
Machine learning engineer

Hello, my name
is Nico.

I am an open source machine learning engineer with focus on WebML at Hugging Face and Google Developer Expert in AI and web technologies, from Switzerland.

Nico Martin
Up next

Where you can catch me

Over the past few years, I’ve spoken at conferences and meetups across Europe, meeting brilliant people and happily nerding out about what browsers can do.

What's new

Latest things I've done

View all updates
transformersjs-v4
Video
SEP 2026

Transformers.js v4.3: Structured Output in the browser

Transformers.js v4.3 is out, and the big one is structured output. With the new @huggingface/transformers-structured-output package you can force a model to follow an exact JSON Schema or regex, directly in the browser. No more parsing markdown fences and hoping the model picked the right property names. In this video I walk through how constrained decoding works, how the new package hooks into the logits processor in Transformers.js, and the technical story behind it: from a WASM wrapper around llguidance to a pure JavaScript implementation with almost no overhead. Also in 4.3: a complete overhaul of the documentation pipeline and a bunch of community-contributed fixes and features. Thank you!

callstack
Podcast
SEP 2026

Running AI in the Browser With Transformers.js

React universe on air

Nico Martin, open source ML engineer at Hugging Face, talks with Mike Grabowski on React Universe On Air about Transformers.js, WebGPU, browser agents and Hugging Face's upcoming WebGPU inference engine.

transformersjs-v4
Video
SEP 2026

We shipped 207 WebGPU Kernels for Browser AI

all open source on the Hugging Face Hub, plus @huggingface/kernels, a library that loads, validates, renders and runs them for you. This video walks through how it works: what an op is vs a kernel, why WGSL, and why we ship Jinja templates instead of fixed WGSL files. The browser picks the data types and workgroup sizes your device supports and builds the fastest kernel for that hardware. Then two demos built on top of it: an attention mechanism with the tinyBERT weights in ~20 lines of JavaScript, and a 1M+ cell wave animation driven by a single matmul kernel, capped only by requestAnimationFrame. Finally, Fleet: run the kernel benchmarks on your own GPU. The results help us optimize the kernels for the thousands of devices we can't test ourselves.