Flagship case study · Applied AI · AI Platform

World Publishing Houses

A source-grounded publishing intelligence platform I designed to make fragmented international publishing data easier to research, verify, evaluate, and trust.

Independent portfolio/product project — not employer production work.

What I built

A governed AI system around the model

The model is one component. The surrounding platform provides data quality, provenance, safety boundaries, observability, and release controls.

Research Agent

Controlled tool use over structured WPH records and source evidence, with safe abstention when evidence is insufficient.

Prompt Governance

Immutable prompt versions, hashes, draft/candidate/production lifecycle, evaluation-gated promotion, audit history, and rollback.

Telemetry & Cost

Trace IDs, models, prompt versions, tokens, estimated cost, latency, failures, database-backed pricing, and workspace budgets.

Evaluation Platform

Golden datasets, deterministic and model evaluators, regression comparison, failure taxonomy, human review, and blocking quality gates.

Rights Safety

Deterministic enforcement prevents unsupported rights claims from being introduced by prompt or model changes.

Data & Review

Source discovery, parsing, normalization, staging, duplicate checks, proof-chain review, and controlled public promotion.

Architecture

Data first, AI second

I deliberately separated the data pipeline from the AI execution layer. The model does not become the system of record.

System flow

FrontendNext.js / TypeScript
API & servicesFastAPI / Python
System of recordPostgreSQL / SQLAlchemy / Alembic
AI layerResearch Agent · Prompt Registry · Evaluation · Safety
OperationsTelemetry · traces · model pricing · budgets
Data qualityIngestion · staging · review · proof chain

A shared trace ID connects AI execution details across the request, prompt, model, evaluation, and telemetry layers.

Watch architecture video on YouTube ↗

Data engineering

Discovery does not equal verified

Publishing-data pipeline

Source discovery → fetch/parse → normalization → staging → duplicate/entity checks → review queue → proof-chain checks → verified promotion.

Primary Nordic development has covered Denmark, Sweden, Norway, Finland, and Iceland, including commercial publishers and university-press workflows.

Why the review layer matters

External publishing data is inconsistent and can conflict across sources. WPH keeps discovered, staged, needs-review, verified, and public states separate so incomplete evidence does not silently become public truth.

Ingestion monitoring also tracks source failures, parser omissions, duplicate rates, zero-staging anomalies, and source health.

AI evaluation & quality

Quality is a release property

I built evaluation into prompt promotion and regression testing rather than treating it as a dashboard added afterward.

Implemented evaluation system

  • 100 documented synthetic reviewed cases.
  • 30 rights-safety cases.
  • 20 Sweden research-grounding cases.
  • 20 English-edition verification cases.
  • 15 university-press classification cases.
  • 15 publisher entity-resolution cases.
  • Deterministic checks for schema, citations, duplicates, provenance, safety, cost, latency, and safe abstention.
  • Model evaluators for semantic dimensions such as groundedness, completeness, relevance, and claim/evidence consistency.

Watch evaluation video on YouTube ↗

Hard safety gate

Safe: “No English edition was found in the reviewed sources.”

Unsafe inference: “English rights are available.”

Those statements are not equivalent. Rights safety is a hard gate and cannot be averaged away by strong scores elsewhere.

Human + automated review

Model scores and human scores remain separate. Evaluation results link back to prompt versions, model execution, trace IDs, cost, latency, and failure categories so a regression can be investigated rather than merely observed.

Engineering evidence

Measured, tested, and documented

774

backend tests passing at a completed stabilization milestone

134

backend subtests passing at the same milestone

420

frontend tests passing, with lint, TypeScript, and production build also green

These are milestone-specific verified counts, not a claim that the continuously evolving repository will always contain the same number of tests.

Engineering decisions

Tradeoffs I made deliberately

PostgreSQL first

I kept one primary system of record rather than adding specialized databases before the product required them.

Deterministic safety

Safety-critical rules stay outside model judgment so an evaluator model cannot “vote away” a prohibited claim.

Evidence-first RAG

The current RAG work starts with immutable source snapshots, deterministic chunks, entity provenance, canonical URLs, hashes, and trust tiers before adding vector retrieval.

Technical deep dives

Four WPH videos — one complete demo set

These are the four WPH demos currently in the portfolio. Contextual embeds elsewhere on the site point back to this same set; they are not additional videos.

Technology

Skills demonstrated

  • Python
  • FastAPI
  • PostgreSQL
  • SQLAlchemy
  • Alembic
  • Next.js
  • TypeScript
  • AI Agents
  • Tool Calling
  • LLM Evaluation
  • Prompt Governance
  • AI Observability
  • AI Safety
  • CI/CD
  • Data Quality