— Engineering notes

How we build Nordic Data.

Public, technical write-ups of the work behind nordicdata.cloud. We share architecture, cost numbers, prompts, code, and the things that did not work. If you are building agent-native data infrastructure in Europe, this is the room.

Engineering 2026-05-12 7 min read

Two bugs the test harness caught in its first run

We wrote a 15-test harness for the platform-integration adapters. Its first run found 2 real bugs that would have shipped broken customer records to Visma and PowerOffice (English "Norway" vs. Norwegian "Norge"). Why writing tests before the first OAuth integration is non-negotiable.

Read post →
Engineering 2026-05-12 9 min read

One Chrome extension, five Norwegian accounting platforms

The OpenAPI-driven, multi-candidate-selector architecture behind Nordic Data Connect. How we built one Chrome extension that injects a "Slå opp" button into Tripletex, Visma, PowerOffice, 24SevenOffice, and Fiken — and the schema surprises along the way (Visma's corporateId almost shipped broken code).

Read post →
Engineering 2026-05-12 10 min read

Joining five Norwegian datasets on the organisation number

The 9-digit Norwegian org number is the cleanest primary key in any business-data system we have worked with. Until you try to actually join Brønnøysund, Aksjonærregisteret, Doffin, EU R&D grants, and sanctions onto it. We walk through the schema, the refresh cadences, and the six edge cases that bit us in production.

Read post →
AI engineering 2026-05-09 9 min read

Stop your LLM from inventing the CFO: nine anti-hallucination rules for AI web search

Give Claude web search and ask for the executive team and it will helpfully invent one. We list every failure mode we hit in three weeks of production traffic and show the exact prompt fragments and JS filters that fixed them. Includes the dedup rule that nearly cost us Hydro is real CFO and how we caught it.

Read post →
Agent infrastructure 2026-05-06 11 min read

28 MCP tools for Norwegian business data: what we shipped, what we cut, what we wish we had

Designing an MCP server is not the same as designing a REST API. Agents do not browse documentation; they introspect tools and decide. We walk through how we picked the 28 tools, why we killed three of them after watching Claude misuse them, and the schema choices that materially changed agent success rates in Claude Desktop and Cursor.

Read post →