It starts with an annoyance
Most of my tools begin as a small irritation I had stopped noticing: a plugin menu that does one thing at a time, sessions I cannot tell apart, plans scattered across ten repos.
ML engineer in Munich. I build AI agents and the tooling around them, usually because something annoyed me first.
Hi, I'm Ee Heng. My path into AI went through mechatronics, cars and hospital ICUs before it reached language models.
These days I spend most of my time on agentic systems, at work and in side projects. What I keep coming back to is the boundary between what a model should decide and what it shouldn't, and I write about the tools I build along the way, including the bugs that cost me an afternoon.
Mechatronics
Heilbronn
Started with hardware: mechatronics and microsystems.
Robotics
TUM
Moved up a layer to robots that have to perceive and decide.
Cars
BMW Group
Taught cameras to judge whether a traffic junction is safe to cross.
Hospitals
German Heart Center
Pointed RealSense cameras at intensive care units to model how patients and clinicians move.
Agents
Now
Build LLM systems where the model classifies and plain code decides.
Most of my tools begin as a small irritation I had stopped noticing: a plugin menu that does one thing at a time, sessions I cannot tell apart, plans scattered across ten repos.
I let an LLM do the fuzzy part and hand the final call to a deterministic layer I can read, test and audit. Routing is code.
The thing I am most pleased with in my browser wrapper for Claude Code is how little of it there is: the whole server is about seven files.