Running SmolLM-135M in rustnn with flexible inputs
WebNN is emerging as a portable, browser-friendly inference API. But LLMs hit a hard wall: dynamic inputs.
Notes on Building Sofware
WebNN is emerging as a portable, browser-friendly inference API. But LLMs hit a hard wall: dynamic inputs.
Performance issues in Python often don’t look like bugs.
My whole stream in the past months has been about AI coding. From skeptical engineers who say it creates unmaintainable code, to enthusiastic (or scared) engineers who say it will replace us all, the discourse is polarized. But I’ve been more interested in a different question: what does AI coding actually cost, and what does it actually save?
I have been writing code for a long time, long enough to be suspicious of tools that claim to fundamentally change how I work. And yet, here we are.
Artificial intelligence is becoming a foundational layer of modern software. It is no longer confined to research labs, but embedded directly in everyday tools and user experiences.
Over the past few weeks, I’ve been working on rustnn, a Rust implementation of the W3C WebNN specification.
In Part 1, I explained why high-quality alt text matters, how modern vision–language models can help, and why balanced, carefully curated datasets are essential for training.
Context: Improving Alt Text for Firefox
When I started working on AI at Mozilla two years ago, I was a Python developer with a background in web services and three months of machine learning experience from working on the Nuclia DB project. I was not someone who had trained models from scratch or built production ML infrastructure. Today, Firefox ships multiple AI features that run entirely on-device, and I helped build the…
For years, running machine learning in the browser meant juggling GPU support, WASM fallbacks, and flags. WebNN changes that by giving the web a standard inference API between JavaScript and hardware. It is the missing piece that turns the browser into a first-class AI client runtime.