I design, build and ship AI systems to production — agent and voice systems, RAG pipelines, computer vision, MCP tool servers and n8n automation — with evaluation, observability and guardrails, not notebook prototypes.
I measure before I ship — precision / recall / F1, cost-per-unit. Numbers decide what's good enough, not vibes.
02
Safe by design
Kill-switch and audit trail on anything autonomous. Governance and guardrails are part of the architecture, not an afterthought.
03
Production, not prototypes
Version control, observability, reproducibility. Systems that run reliably for real users — not notebooks that work once.
Selected work
Systems in production and the ideas behind them.
In productionVLM + RAGOrchestrator
Tilsyn.AI — AI inspection platform
A new approach to automated inspection in a regulated industrial domain. A VLM + RAG architecture with an orchestrator, eval-driven quality and a kill-switch.
The core idea is novel and kept private — live walkthrough on request.
Mechanism protected
LiveThree.jsFeatured in Morgenbladet
Cable Goal — forensic 3D replay
A browser 3D reconstruction of the disputed Norway–England World Cup goal — the shot that appeared to clip an overhead TV cable before England's equalizer. Re-kick it yourself and watch it branch on whether the trajectory hits the wire, then vote. Built solo end to end (physics, rigged 3D players, a rate-limited voting API, a live per-country dashboard); it drew 1,800+ votes from 35+ countries and was featured in the Norwegian weekly Morgenbladet (19 July 2026).
Norwegian AI Championship qualification — a MAPF controller for up to 20 warehouse robots picking and delivering orders on a grid where shelves form one-cell-wide aisles, for 500 rounds, without deadlocking. The edge was spotting that each day's game is deterministic: that turns a reactive problem into offline optimization — scout → optimize → execute, solving the whole day in advance against a local simulator while most teams solved round-by-round. Built as a measured optimization ladder, each layer added only after it beat the last on a recorded log: a centralized dispatcher with order pre-picking, one-way aisle orientation (+129%), PIBT collision resolution (benchmarked against PBS, CBS, EECBS, LaCAM), an anti-deadlock / anti-oscillation layer, and a two-phase full-game planner. 15th of 380 teams, entered solo.
A 36-country electricity, fuel and transport price tracker on an interactive WebGL globe. Look around it with real depth: on desktop, markerless perspective correction — the webcam tracks your face and shifts the 3D camera in real time, so the globe parallaxes as you lean (a head-coupled "window into the scene", no glasses or markers). On mobile, the same off-axis projection follows the device gyroscope. Behind it, scraping API endpoints pull live prices worldwide and normalize them per country.
The main round of the Norwegian AI Championship — three independent tasks, solo. NorgesGruppen VLM: a retail vision task — a YOLO detector paired with a DINOv2 embedding + reference-matching pipeline. Tripletex: an LLM-routed agent that classifies inputs and dispatches them to structured-extraction routes against the accounting API. Astar Island: a probabilistic map-reconstruction game scored by KL divergence — I built a Bayesian observer with Dirichlet smoothing (α tuned offline) and a two-phase budget-aware observation policy.
Crowd estimation for ski resorts: lightweight object detection runs on CPU at the edge, counting how many people are on a slope or waiting in a lift queue in real time. It's built privacy-first — each frame is masked to a region of interest, counted, then discarded on the spot, so nothing is ever kept: no facial recognition, no stored images, only the headcount. Those counts feed a live dashboard and accumulate over time, so a resort can see how busy each zone is right now and how it trends through the day.
A Visam AS AI platform that cuts daily commutes by matching "mirror twins" — people whose home and work locations mirror each other — and chaining job and home swaps so more people end up working closer to home. I built the ML end to end: 21 ONNX-exported models — a traffic GNN, a Siamese compatibility network, a LambdaMART learning-to-rank model and an ILP chain solver (structurally the same problem as kidney paired-exchange, solved with column generation so it scales to long swap chains). Everything was trained on 1M synthetic profiles, so the system was built and evaluated without touching real personal data; multilingual embeddings place profiles written in different languages into one shared space, and a train-in-Python / serve-anywhere ONNX seam keeps the models portable. The R&D is approved under SkatteFUNN (the Research Council of Norway).
Windows voice dictation that runs entirely on-device — your audio never leaves the machine, so it keeps working on a plane, behind a firewall, or with no connection at all. Hold a hotkey and speak into any app — email, chat, a code editor, the browser — and the text lands right where your cursor is, no copy-paste step. Beyond raw transcription it rewrites, reformats and translates what you said on the fly: dictate a rough thought and get back a clean message, or speak one language and have it typed in another. It covers 26 languages with near-instant translation, and lets you choose the on-device ASR engine — NVIDIA Parakeet for speed or OpenAI Whisper for breadth — both quantized to INT8 so they stay fast on ordinary hardware. The full Windows build ships as a free portable download.
Python · on-device ASR (NVIDIA Parakeet / OpenAI Whisper) · 26 languages · INT8
Try it yourself
Grab the Windows build on vibevox.io — hit Download and enter access code AIFORALLE-2026
An app that rides a live phone call and feeds you the next line on screen as it happens — real-time transcription, who-said-what speaker separation, AI prompts mid-conversation. For sales calls and interviews, where the right line a second too late is the wrong line. Nobody else ships this.
The approach is novel and kept private — live walkthrough on request.
LiveAI productFINN.no
PrisSnap — AI pricing for FINN.no
Point your phone at an item and get an instant secondhand price estimate plus a ready-to-post Norwegian listing — Gemini Vision identifies what it is from the photo, anchors it to a realistic FINN.no price range, and writes the title, description and category in idiomatic Norwegian. It turns the friction of "what is this worth and how do I word the ad" into a few seconds, so the listing is one tap from going live. Runs on web and Android.
Gemini Vision · Android · web · Norwegian copy generation
A visual-first planning cockpit for a Norwegian municipal music school — teachers, ensembles, students and rooms as a drag-and-drop graph board instead of a spreadsheet. A conflict engine flags eight kinds of scheduling clash, and every edit lands in a sandbox draft you apply or discard. The AI sits behind a pseudonymization boundary — raw names and addresses never leave the process — and its auto-solver only proposes fixes the real engine has verified will reduce conflicts. Built for Stavanger kulturskole, with a pilot this autumn (2026).
A Norwegian construction-cost calculator: estimate budgets for new builds, extensions, renovations and wet-rooms, with company profiles, saved calculations and exportable PDF cost reports. A guided step-by-step estimator walks through project, dimensions, ground, structure, technical and quality choices, updating the cost live as you pick each option — timber vs concrete, insulation class, finish level. A built-in AI advisor answers building-cost questions inline as you go. React + Supabase web app for the Norwegian building sector.
React · TypeScript · Supabase · charts · PDF export
The motion pipeline behind Heimdall Innovation's flying-cinema pod: FPV-drone flight telemetry drives a motorized chair, so the seat banks, climbs and dives in sync with first-person flight footage. Shipping as SIMO — Simulation Redefined.
Live ElevenLabs Conversational AI agents I built — each speaks Norwegian and English. Open one and just talk to it naturally in the browser — they hold a real conversation, not fixed commands.
LiveCRM-connectedElevenLabsNO / EN
Visam AI agent
A customer-facing phone voice agent for Visam AS, wired into the company CRM. It doesn't just talk — it acts: emails you the price list on request and books consultations at our Innovation Park Stavanger office or online, capturing the lead end-to-end. Bilingual, conversational, around the clock.
Try it live
Talk to it like a person — these are just examples, not fixed commands. Ask it anything about the company and its services, or try “send me your price list” and check your inbox, or “book a consultation at iPark” and it schedules you in. Norwegian or English.
In productionNovelReal-timeTwilio + OpenAI Realtime
VoxBridge — live call translation
Two-way phone-call translation in real time: each caller hears the other in their own language, synchronously — built on Twilio Media Streams and OpenAI's Realtime API.
Twilio Media Streams · OpenAI Realtime · WebSocket
AI automation & integrations
Agents that do the work, end to end.
n8n-orchestrated pipelines with AI agents in the loop — scraping, scoring, generating and publishing, with a human approving the calls that matter.
200+ workflowsIntegrations
n8n workflows & AI-automation
This is the work I love most — n8n is where I'm strongest, and I've built automations of every kind on it: lead scraping and enrichment, cold-email outreach, content generation and scheduling, video pipelines, booking and support chatbots, data sync and reporting, scrapers, RAG ingestion, and multi-step AI agents. They're wired into Brevo, Google Calendar, Places, Telegram, Supabase and dozens of APIs, with retries, throttling, idempotency and human-in-the-loop approval where it counts. AI agents sit inside the flows: they classify, score, write copy and make decisions, then hand off to a human for the calls that matter. The same backbone powers the FinnFunn publishing pipeline and the CRM-connected voice agents — webhook-triggered, observable, and built to keep running unattended for weeks. When a job involves chaining tools, models and APIs into something that just runs on its own, n8n is the first thing I reach for.
n8n · Claude / GPT / Gemini · Brevo · Google Calendar / Places · Telegram · Supabase · webhooks
Liven8n backend
FinnFunn — AI-driven social automation
A social-media automation system driven by AI agents with n8n in the backend: it scrapes, scores, generates and schedules content daily, with a Telegram human-in-the-loop approval step before anything goes live. It runs live — publishing daily to its Facebook community: daily FINN.no finds with a short price analysis.
A Norwegian service company that puts Ukrainian refugees to work in managed micro-teams (brigades): AI matches team composition, handles onboarding and sales outreach, and runs NO/UA/EN translation across the platform. One client invoice, a Norwegian-speaking team lead on site, zero HR overhead — built for two audiences at once: clients hiring a service and workers looking to join.
Next.js · AI matching · NO / UA / EN i18n · Netlify
I install, configure and cost-tune self-hosted OpenClaw AI agents — autonomous Telegram bots running on a Dockerized Hetzner host with their own tools and memory. I also built a one-command tuner that fits a bot on the flat $20 ChatGPT Plus Codex subscription instead of per-token billing — trimming the bootstrap, pinning the Codex CLI to subscription mode and killing the paid fallbacks that quietly drain the quota.