Skip to content

FOUNDER · AI & AUTOMATION · FULL-STACK

I build software for the workflows people still do by hand.

I'm Martin. I built Datamap, and before that I was Head of AI & System Integrations at Bikekey. I work the whole way round: the process, the data, the backend, the AI layer, the product and the ops.

What I'm best at is digging into what actually needs solving, learning what the job requires fast, and dragging the solution all the way from a vague idea to something running in production.

Datamap: property page for Novo Alle 1 showing a property summary, key figures and the cadastral parcel drawn on the map
Idea → paying customers
Datamap built and launched
~3M properties
Geospatial data index
AI · OCR · workflows
Automation in production
DK & NO
Production experience

01 · Show and tell

Four minutes with the product open.

I click through Datamap, show how the AI layer pulls numbers out of the registries instead of inventing them, and walk through the OCR pipeline from Bikekey. I'm pretty proud of that last one.

What I cover

  • 01Datamap live: search, property views, maps and registries, area analysis, and the AI assistant with its sources.
  • 02Why the model never gets to be the source of truth, and how type-safe backend tools deliver the actual numbers.
  • 03The event-driven OCR and vision pipeline from Bikekey, and why the human stayed in the loop.
  • 04How I pick tools: when it should be an agent, and when a script simply does the job better.

The video is on its way

The recording lands here, with captions and a short summary underneath. Until then the cases below tell the same story in writing.

IN DEVELOPMENT

02 · Case

FLAGSHIP PROJECT · LIVE PRODUCTION

Datamap: public data made usable

Danish property data sits scattered across a handful of registries, each with its own format and its own way in. Datamap pulls them into one map-based workspace where you can search, analyse and ask questions in plain language.

datamap.dk ↗

My role

I built and launched the platform myself: product, data engineering, backend, AI, infrastructure, payments and sales.

Datamap: property search with filters on the left and results plotted as points on the map
Property search: filters turned into a map view with 1,717 matches
Datamap: land registry tab showing titles, easements and the ownership register side by side
Land registry and ownership records shown together for direct comparison

The data platform

From fragmented registries to one coherent data layer.

~3.000.000Danish properties indexed

I built version-aware ETL and sync flows from the official data sources into PostgreSQL/PostGIS. The index covers roughly 3 million Danish properties, searchable and geospatial.

Updates get validated before they go live. The pipeline can delta-sync, trace where a field came from and roll back, so nobody makes a decision on a half-loaded dataset.

The product

Properties, addresses, buildings, cadastral parcels, ownership, companies, valuations and geographic layers all hang together in the same views.

On top of the data layer sit search, map tools, area analysis, reports, API access, subscriptions, access control and operations.

AI that doesn't guess

AI interprets. SQL delivers.

People make expensive decisions on these numbers. So the model never got to be the source of truth.

The assistant first resolves the right address, property, company or person. Then it calls type-safe backend tools, fetches deterministic data and answers with sources attached.

In Intelligent Search, the model turns your sentence into a validated JSON schema. The backend resolves locations and runs the same filters and queries as the rest of the product. Filters it couldn't read get marked as not applied rather than guessed.

The model handles the language. The system handles the facts.

How a question becomes an answer

  1. User question

    plain language

  2. Intent and entity resolution

    address · BFE · CVR

  3. Typed backend tool

    validated schema

  4. Registry data and SQL

    deterministic

  5. Answer with source references

    traceable

Technical

  • Tool-first AI agent
  • SSE streaming
  • Type-safe backend tools
  • Source references
  • Domain and privacy controls
  • Conversation persistence
  • Rate limits and access tiers
  • PostgreSQL / PostGIS

03 · Case

AI AUTOMATION · INSURANCE WORKFLOW

From manual verification to human-in-the-loop OCR

Frame number read

WBK72941180
Confidence0.94

Concept illustration, not a screenshot

The problem

When an insurance customer registered a bike, they uploaded images of the frame number and their documentation.

An employee opened every single case and read the number off by hand. The check mattered (it's what ties the bike to the right owner), but it was the same work over and over.

The solution

I built an event-driven OCR and vision pipeline that reads the frame number out of the image and scores how sure it is about the read.

Clear-cut cases could move straight on. Uncertain results got flagged for manual review.

The human stayed in the loop on purpose. The automation was there to move attention onto the exceptions, where somebody actually has to make a call.

The workflow

  1. Customer uploads images

    frame number + documents

  2. OCR / vision reads the frame number

    event-driven

  3. Validation and confidence check

    threshold

  4. High confidence

    The case continues through the fast path without waiting on an employee.

    Uncertain result

    Flagged for manual review, where a human makes the call.

Bikekey's landing page, headlined “Make your bike safe with a searchable bike plate”, next to a list of features
Bikekey's product page. The bike is tied to its owner through MitID and a visible plate.

And the rest of the role

As Head of AI & System Integrations I found the places in customer support and the internal processes where AI actually made sense, and built them.

In practice that meant Intercom AI, workflow automation, API integrations and product delivery across Denmark and Norway.

Earlier, as a full-stack engineer, I worked on insurance integrations, the Norwegian product launch and partners like LB Forsikring and NAF.

I no longer have access to Bikekey's internal dashboards. The screenshot is therefore the public product page, and the diagram is drawn from memory: no confidential systems, customer data or internal code.

04 · Case

INTERNAL TOOL · HUMAN-IN-THE-LOOPIN DEVELOPMENT

Less manual bookkeeping. More control.

As a founder I ran straight into all the admin routines you accept as manual until you've done them 50 times.

So I've built scripts and agent workflows that fetch, structure and reconcile Stripe payments, refunds, fees and documentation for bookkeeping in Dinero.

The system remembers what it has already processed, keeps the basis for each calculation, and puts bookkeeping suggestions up for approval.

The win is that the same month can be run again and come out identical, and that every number traces back to its source.

  1. Stripe

    payments · refunds · fees

  2. Local ledger and idempotency

    seen before?

  3. Validation and reconciliation

    calculation basis preserved

  4. Bookkeeping suggestion

    Dinero

  5. Human approval

    final say

05 · How I work

Sometimes the answer is a small script.

I don't reach for an LLM just so the solution can be called AI-powered.

I pick tools based on reliability, speed, cost, maintenance and what a mistake costs. Some problems need an agent. Others are better solved with an API integration, SQL, a script, a queue, a CLI or a perfectly ordinary workflow.

  1. 01

    Probabilistic interpretation, deterministic execution

    Models are good at language, intent and messy input. Databases, rules and code are good at precision. The strongest systems use both.

  2. 02

    Keep the human in the loop when mistakes are expensive

    Automation should move attention onto the hard cases. Uncertainty belongs in plain sight, not tucked away.

  3. 03

    The right model for the right job

    I keep up with what the models can do month to month, and weigh capability against latency and cost. Heavy models should be used when the task demands them.

  4. 04

    Find the bottleneck first

    Before I build, I try to understand the whole process. Otherwise you just end up running a bad workflow faster.

The toolbox

Used in production or in concrete workflows

  • LLM agents and tool calling
  • Agent skills
  • Reusable agent workflows
  • MCP
  • Model routing
  • OCR and vision
  • API integrations
  • Data pipelines
  • PostgreSQL / PostGIS
  • Scripts and CLIs
  • Zapier workflows
  • Human-in-the-loop automation

06 · About me

The through-line is that I learn it on the way

I've walked into fields several times where I wasn't the obvious candidate. The recipe has been the same every time: say out loud what you don't know, then learn the rest fast.

I started in actuarial mathematics. Probability, statistics and risk set the foundation. Then I switched to business administration and information systems at CBS to get closer to software, product and business.

At the Danish Veterinary and Food Administration I worked in a legal environment without being a lawyer. At Bikekey I started out very green as a developer and ended up a full-stack engineer, then Head of AI & System Integrations.

With Datamap I took the whole trip myself: build, launch, sell.

I'm quick at investigating, asking, testing things out and getting productive in something I didn't know beforehand.

Portrait of Martin
Martin · Copenhagen

How I got here

  1. Before CBS

    Actuarial mathematics

    Mathematics, probability, statistics and analytical thinking.

  2. 2023 – 2024

    Danish Food Administration

    Stepped into a legal, compliance-heavy field and learned what the job required.

  3. 2023 – 2025

    Bikekey

    From green developer to full-stack engineer and Head of AI & System Integrations.

  4. 2026 – now

    Datamap

    From an empty codebase to a live product with data, AI, operations and paying customers.

  5. Next

    Next chapter

    Building solutions inside a company with greater operational scale, more workflows and more people who benefit from them.

SIDE NOTEA slightly odd, but true story

My first job was as an assistant badminton coach, even though I had never played badminton.

They knew. I got the youngest kids alongside an experienced coach, picked up the game as I went and did the job.

“I haven't tried that yet” has never meant the same thing as “I can't learn it”.

07 · Outside the terminal

Outside the terminal

I play guitar and spend a good part of my spare time on strength training and powerlifting.

Strength training appeals to me for the same reason software development does: small, consistent improvements compound over time into something that first looked unrealistic. It keeps body and head sharp.

I value discipline, accountability and being someone people can count on. When I say I'll take responsibility for something, nobody should have to spend energy checking whether it gets done.

  • Curiosity

    I learn best by investigating, experimenting and building something real.

  • Ownership

    I do well with responsibility for the whole stretch, from problem definition to operations.

  • Reliability

    Agreements and responsibility matter. I want to be someone others can rely on.

  • Technological optimism

    Technology should free up more room for human creativity, judgement and innovation.

Where I stand on technology

I'm fundamentally optimistic about technology and AI.

As long as the world is full of problems, we need human judgement, creativity and responsibility. To me AI is a lever that removes the repetitive work and gives people more room to analyse, decide and create.

Long term I hope to leave a small positive mark through technology. I'm still early in this, but the entrepreneurial drive and the appetite for learning aren't going anywhere.

Fluent in Danish and English · Conversational Persian

08 · Contact

Shall we build something that actually moves the needle?

Write to me if you want to talk AI, automation, product development, public data or a project that's slightly too ambitious.

martin.sh99@hotmail.com