Skills
Strategy, commercial, product and technical skills. Every row cites at least one project or role as evidence.
Strategy & commercial
| Skill | Evidence |
|---|---|
| Go-to-market, service design and pricing | Stratas (build-plus-retainer model), PwC Innovation & Growth, seven cohorts of the Slingshot scale-up accelerator |
| Market sizing, competitor and feasibility analysis | PwC engagements across finance, manufacturing, energy and technology; go/no-go recommendations at Stratas |
| Business cases, ROI and go/no-go recommendations | ai-opportunity-reports, PwC engagements |
| B2B sales, pipeline and contract negotiation | PwC (more than 20 MNOK in contract value secured), Stratas, prospector |
| Positioning and messaging | stratas-website, saga |
Product & growth
| Skill | Evidence |
|---|---|
| Product discovery and requirements with client owners | fabrication-quoting, preservation, recrew |
| Product and workflow architecture | client-portal, market-intel-platform, recrew |
| Conversion optimisation and structured A/B testing | Boost.ai (50+ tests), iVisa (conversion up 15%), The Economist, Betway, Conversion.com, ING |
| CRM and marketing automation | Boost.ai (40+ hours a month of manual work removed), client-portal CRM |
| Analytics, BI and data visualisation | iVisa, agent-fleet-dashboard finance panel |
| UX research | The Economist, Betway, Conversion.com |
Leadership & change
| Skill | Evidence |
|---|---|
| Workshop facilitation and executive sessions on AI | ai-opportunity-reports, Validé KI-360 and ITSA growth programme |
| Training, adoption and change management | PwC programmes, Validé cohorts, client roll-outs |
| Fractional AI leadership | SMB clients in Rogaland, one to two days a week |
| Team leadership and coaching | PwC (team of more than ten consultants) |
Agent engineering
| Skill | Evidence |
|---|---|
| Agentic system design and multi-stage pipelines | preservation, market-intel-platform, stratas-brain |
| Claude Code plugins, hooks and reviewer agents | client-harness, harness |
| Multi-agent product pipelines with human approval gates | product-factory |
| Platform defaults derived from incidents | product-template |
| Scheduled agent loops with kill switches and runbooks | stratas-brain |
| Workflow automation on n8n and MindStudio | agent-workspaces |
| Azure and Azure AI Foundry, in-tenant deployment architecture | Enterprise deployment architecture for industrial clients |
Languages
| Skill | Evidence |
|---|---|
| TypeScript (strict) | saga, prospector, fabrication-quoting, agent-fleet-dashboard, demo-hub |
| JavaScript (ES2020+) | agent-fleet-dashboard, stratas-website |
| Python 3 | preservation (prototype: scraping, scoring and XLSX export) |
| SQL (Postgres dialect) | prospector (16 idempotent migrations, restricted-role RLS), fabrication-quoting (versioned rate cards, unique partial indexes), agent-fleet-dashboard |
| Shell / Bash | harness, CI + orchestration scripts across the fleet |
Frontend
| Skill | Evidence |
|---|---|
| React 18 / 19 | Every frontend product; React 19 in fabrication-quoting, saga, demo-hub, stratas-website |
| Next.js App Router (14 / 15 / 16) | saga (v15), fabrication-quoting / prospector / demo-hub (v16 Turbopack) |
| Vite | agent-fleet-dashboard, stratas-website |
| Tailwind CSS (v3 + v4) | Every visual project; v4 in fabrication-quoting, demo-hub |
| Framer Motion | demo-hub |
| Radix UI primitives | stratas-website |
| DnD Kit | stratas-website (drag-drop content ordering) |
| CodeMirror | stratas-website (rich content editing) |
Backend
| Skill | Evidence |
|---|---|
| Node.js (18+ / 20+) | Every product |
| Next.js API routes (Node runtime) | fabrication-quoting, saga, prospector |
| Vercel Node functions | agent-fleet-dashboard |
| Express | recrew, stratas-website |
| Trigger.dev v4 | saga, outreach-intelligence, relocation-market-intel, preservation, prospector |
Remote MCP server (mcp-handler 2.x, Streamable HTTP, token-gated) | agent-fleet-dashboard (13-tool backlog connector, 60 writes/min budget, crypto.timingSafeEqual auth) |
Data
| Skill | Evidence |
|---|---|
| Supabase (Postgres + Auth + RLS + Storage) | Almost every product; deepest patterns in prospector, fabrication-quoting, agent-fleet-dashboard |
| Postgres RLS (deny-all, service-role, restricted roles) | prospector (restricted NOLOGIN role, JWT-signed role assignment), fabrication-quoting (deny-all + auth middleware) |
| Schema isolation in a shared Postgres project | prospector (dedicated prospector schema alongside Saga / SMI / website in one Supabase project) |
| Versioned data with unique partial indexes | fabrication-quoting (WHERE is_current, (workspace, version)) |
| Event-sourced audit trails | fabrication-quoting (issued_quote_events), prospector |
| Drizzle ORM + Neon Postgres | stratas-website |
| Google Cloud Storage | stratas-website |
Supabase realtime (postgres_changes subscription, optimistic writes) | agent-fleet-dashboard (Dev tab useBacklog) |
| Human-plus-agent concurrency primitives in SQL | agent-fleet-dashboard (fleet_backlog_claim() RPC, claimed_via / claimed_session provenance, holder-guard migration, five-minute liveness) |
| Entity resolution (keys, domains, alias clusters) | preservation (fuzzy name matching measured and removed: 34 of 41 matches were wrong) |
| Public-register integration (Brønnøysund, Offshore Directorate) | preservation (Norwegian-shelf scope and prospect discovery) |
LLM / AI
| Skill | Evidence |
|---|---|
| Anthropic Claude API (Opus / Sonnet / Haiku) | saga (stratified use per model), fabrication-quoting (Sonnet 5 via AI Gateway), agent-fleet-dashboard (Insights chat), preservation (extraction, briefing, outreach drafts, pre-send review) |
| Vercel AI SDK (streaming + structured output) | fabrication-quoting (streamText + Output.object({ schema }), client useObject) |
| Vercel AI Gateway (with direct Anthropic fallback) | fabrication-quoting, agent-fleet-dashboard |
| Zod schema-constrained output | fabrication-quoting (CaseSchema, IntakeBriefSchema) |
| Prompt caching for cost + latency | fabrication-quoting (51k-token cold → 3-5s cached) |
| Langfuse cost tracking (per-tag, per-project, per-user) | agent-fleet-dashboard (two-project routing), saga, fabrication-quoting, prospector, preservation |
| Langsmith cost tracing (legacy pattern) | preservation, earlier agent-fleet-dashboard |
| OpenAI API | ghostpost, client agents in the client portal |
| AI safety patterns (two-sided confidentiality gates, incident-driven design) | saga (isConfidentialMetric, protectedClientNames, detectConfidentialLeak) |
| Model stratification by cost / use case | saga (Opus chat / Sonnet batch / Haiku verify) |
| Multi-model paid-API cost gating | preservation (CLOUD_GATE_ACK=enabled acknowledgment) |
| Evaluation suites (brand / quality / A-B / vision) | saga (three eval suites, env-gated expensive vision evals) |
| Vision-pass reading of user-supplied dashboards (safely) | saga |
| Deterministic-first scoring (no LLM in rank path) | preservation, prospector |
| LLM extraction checked against its source page | preservation (Norwegian and English pages; unsupported signals dropped) |
| Evidence checks on AI output (corroboration, entailment) | preservation (independent-source bar; recommendations blocked when their citation contradicts them) |
| Pre-send review of the deliverable by a second model | preservation (reads the delivered workbook and e-mail; can hold the send) |
| Model policy and per-run cost caps | preservation (one policy file for every model; alert and hard stop per run) |
Infra / deploy
| Skill | Evidence |
|---|---|
| Vercel (custom domains, preview envs, deployment protection, Web Analytics) | Every deployed product |
| Vercel Fluid Compute (300s max duration for cold LLM extractions) | fabrication-quoting |
| GitHub Actions (cron delivery, artefact commits) | preservation (prototype weekly cron; production canary checks), agent-fleet-dashboard (weekly seed sync) |
| Trigger.dev v4 (per-user schedules, retry budgets, chained tasks) | saga, prospector, preservation (scheduled weekly pipeline, Sunday checks, midweek jobs) |
| Doppler secrets | agent-fleet-dashboard, fleet-wide |
| Resend inbound + Svix signature-verified webhooks | fabrication-quoting |
| Multi-region / multi-domain SEO | stratas-website (Stavanger, Sandnes, Haugesund, Rogaland) |
Security
| Skill | Evidence |
|---|---|
| Postgres restricted role + JWT-signed role assignment | prospector |
| RLS deny-all with service-role behind auth middleware | fabrication-quoting, prospector, agent-fleet-dashboard |
| Formula-injection sanitisation on XLSX/CSV export | prospector (sanitizeCell()) |
| SSRF guard on user-supplied URLs | prospector |
| Session revocation via row-versioning (no logout endpoint) | prospector, pattern originated in saga |
| bcrypt password hashing (cost 12) | prospector |
| Webhook signature verification (Svix) | fabrication-quoting |
Testing / quality
| Skill | Evidence |
|---|---|
| Vitest (unit + integration) | prospector (~11k lines of test code, 80 files), saga (208 test files, 3,485+ assertions), fabrication-quoting |
| Playwright (E2E + visual QA at production widths) | preservation (dashboard) |
| Eval suites (LLM output quality, gated expensive evals) | saga |
| Test-driven development, 80% coverage minimum | Fleet-wide house rule; enforced on saga, prospector, fabrication-quoting |
| Golden tests for deterministic functions | prospector (scoring), preservation (scoring) |
| Self-healing sources and dry-run canaries | preservation (Sunday source probe and repair; dry-run can stop Monday's run) |
Product / process
| Skill | Evidence |
|---|---|
| Multi-tenant architecture in shared infrastructure | prospector, agent-fleet-dashboard |
| Cost-aware LLM product design (per-product spend budgets, tag routing) | agent-fleet-dashboard, saga, preservation |
| Bilingual product (Norwegian + English, hydration-safe, locale detection) | fabrication-quoting, saga, stratas-website |
| Demo-hub template pattern → product spinout | demo-hub → fabrication-quoting |
| Monorepo + subtree split delivery to client repos | Fleet convention |
| Anonymization / confidentiality discipline for client-adjacent artefacts | This library; saga confidentiality gates |
| Product-doc standard (WIKI.md + TODO.md + COST_INSTRUMENTATION_REQUIREMENTS.md) | recrew, agent-fleet-dashboard, preservation |
| Human-plus-agent collaboration via shared backlog (one Postgres table, three write surfaces) | agent-fleet-dashboard (Dev tab + CLI + MCP connector; the operators + their Claude Code sessions) |
| Nordic industrial B2B buyer knowledge | fabrication-quoting, preservation, outreach-intelligence, stratas-website |
Let’s have a coffee
Over fifteen years of consulting and growth, and hands-on AI delivery from discovery to daily operations. I can share my CV and talk through how I connect business outcomes with systems that run.
Available for a chat. In person in Stavanger, or remotely worldwide.