HUGO.CHARMIES(1)
PRODUCTION
$ hugo --whoami
Shipping production AI at Charmies. Co-developing Kompass. Based in Belgium.
$ hugo --status
status : ● Open to AI engineering roles location : Hybrid · Belgium daily_driver : Claude Code favourite_stack: Next.js · Postgres
$
$ hugo --now
$ hugo --featured








$ hugo --next
kalai COMING SOON
iOS calorie tracker, camera-first, sub-10-second logging.
Swift 6 · SwiftUI · Vision · SwiftData
sports-event-hub COMING SOON
Started as an airsoft hub. Reframing to a hub for any local sports event.
Next.js · TBD
$ hugo --stack
AI / AGENTIC
────────────
PRODUCT ENGINEERING
────────────
INFRASTRUCTURE
────────────
$ hugo --takes
Most “agents” are one well-written LLM call plus retrieval. Add orchestration when a named failure forces it — long-horizon state, human-in-loop, fan-out you've already hit in production. Frameworks aren't wrong; they're premature.
The harness is the codebase now — SKILL.md, program.md, the context window, the agent graph. Sharpen this primitive and everything downstream multiplies. The catch: orchestration without evals is vibes with extra steps. Build the harness on top of eval discipline, not instead of it.
Models flip from correct to incorrect under casual pushback ~15% of the time. Manage AI like a mid-level report: trust it on execution, gate it on judgment. Continuous supervision is unsustainable; checkpointed approval before irreversible writes is the discipline that ships.
$ hugo --origin
At school we had a client in Leuven who wanted to automate scraping indicators like “what percentage of Belgians are obese.” Until then it was manual work. I'd seen something about n8n's AI agent feature, plugged OpenRouter into the workflow, and watched it scrape and reason about pages we'd have spent weeks on.
A few hours later I realised n8n was just making API calls — we could call OpenRouter directly from our own code. The whole flow migrated to native TypeScript. Around the same time we built the client's site with Bolt and I sat watching it generate a real custom website in minutes.
I haven't manually written code from scratch since. I'd rather spend the time learning to orchestrate agents. Coding ones, image ones, video ones, voice ones. Orchestration compounds across every sector.
EDUCATION
UC Leuven Limburg
BSc Applied Computer Science · 2022–2025
FIRST AI PROJECT
Ecofoodmap · n8n → code-native
CURRENT MODEL
Orchestrator, not writer
$ hugo --archive
$ hugo --contact
$ open ~/projects/aa-pipeline
HUGO.AA(1)
STACK
Next.js · Drizzle · SerpAPI · Cheerio · LLM scoring + briefs
01 / 04
The brief. An audio-visual integrator wanted to stop reading building permits by hand. Every new commercial building is a potential AV install. Their team was Googling permits one by one, looking up owners, scoring fit, and writing short notes for sales. A friend on exchange interned there, brought the problem back, we pitched a pipeline.
02 / 04
What the pipeline does. Ingests publicly-available building consent data, identifies the people on each project (owners, contractors, architects), enriches each entity with a search + scrape pass, scores fit for AV work based on building type and signals in the permit text, and writes a short sales brief per lead. Five layers, composable, each layer is independently testable.
03 / 04
The architectural choices. Multi-source enrichment is the 2026 staple skill, LLM + search + scrape + dedupe + score. The interesting bits: SerpAPI for the search head, Cheerio for targeted page extraction, Fuse.js for entity deduplication across sources, Zod schemas as the contract between layers so each pipeline stage can be swapped or rerun independently. Local Ollama in dev to avoid an API bill during iteration, API-backed in production.
04 / 04
Status, honestly. Prototype shipped internally, not yet handed to the client. We paused when Kompass moved into investor conversations and took priority. A real engineer juggles three projects and makes a resource call. This was that call. The pipeline itself is the artifact.
SCREENSHOTS
$ Open to resuming once Kompass settles into its pivot.