AI data engineering / Finland

Data systems that know what they know.

I design and operate AI-ready data foundations where every value keeps its source, time and trust state—from ingestion and validation to models and production decisions.

Evidence before answersBuilt for replay, review and recovery
LINEAGE / POINT-IN-TIME / TRUST TRACE HEALTHY
SOURCEAPI + eventsobserved_at
RAW / 01Frozen evidencepayload · load time
MODEL / 07Versioned computeas-of gate passed
PUBLISHTrusted currentdecision surface
QUARANTINEComparable conflict retainedmasked from downstream influence
source evidence retained computation reproducible trust state explicit
12.37Mmarket-price observations
4.93Mpopulated warehouse rows
2,000+automated test cases
51blocking integrity gates

Latest source-backed counts.
Each figure has its own system scope.

01 Operating principles

A pipeline can finish successfully and still produce data that should not be used.

The work is not complete when a table exists. It is complete when the data has a defined meaning, a valid time, a visible trust state and a recoverable operating path.

01Evidence

Keep the source attached.

A derived value should retain the snapshots, computation version and publication event that made it true. Fast current state sits on top of durable evidence—not instead of it.

source → evidence → computation → current
02Time

Make hindsight impossible.

Training and evaluation only use information available at the decision point. Point-in-time gates, walk-forward splits and replayable snapshots turn leakage from a promise into a test.

observed_at ≤ decision_at
03Trust

Quarantine uncertainty.

Comparable sources that disagree are not silently reconciled. The evidence stays visible, the derived value leaves decision paths, and an explicit review restores or rejects it.

retain evidence · mask influence · review
04Operations

Measure the failure path.

Freshness, missingness, retry exhaustion and structural absence need different states. An SLO must describe what the pipeline is doing—not become greener by excluding hard rows.

fresh · late · exhausted · unresolved

02 Selected data systems

Proof lives in the failure modes.

Three systems that treat evidence, timing and refusal as product capabilities—not implementation details hidden below the interface.

01 Operational intelligence

Molly — evidence attached to every current answer.

A private analytical system built around a deliberate split: a fast current projection for operators, with append-only event, snapshot and computation history underneath it. Conflicting comparable evidence is quarantined rather than silently overwritten.

  • PublicationEvidence, computation version and visible current state move together.
  • Trust modelUncertain derived values are masked from downstream analysis until reviewed.
  • ObservabilityComputed, unavailable, exhausted, quarantined and unresolved remain distinct.
Read the public case study ↗Python · FastAPI · PostgreSQL · Next.js
MOLLY / TRUST ARCHITECTURE AUDITABLE
INGESTSource observationspayload · provider · observed_at
EVIDENCEAppend-only recordevents · snapshots · computations
CURRENTFast projectionone visible trusted version
COMPARABLE CONFLICTQuarantine keeps the evidence, removes the influence.
ANALYST REVIEW
atomic publicationreason-coded statereplayable history
P/02 · Model data platformPRIVATE SYSTEM
TRAINVALIDATEDECIDE
AS-OF
2015—202320242025
future rowsblocked from fit

Suomifutis — history that cannot leak forward.

A rebuildable football data and modelling platform. Raw API responses are retained before parsing; evaluation is point-in-time and walk-forward; a cutoff validator removes future matches, refits, and requires identical historical ratings.

36,878 matches1.16M appearances~200 rejected ideas documented
Python · SQLite · NumPy · SciPywalk-forward / bootstrap / Holm
P/03 · Data infrastructurePRIVATE SYSTEM
SOURCE A
SOURCE B
ORDERINGHELDuntil every gate passes

Feed Latency Benchmark — no ranking before integrity.

A real-time measurement system that timestamps complete frames at the socket boundary on one monotonic clock and pairs only exact one-to-one state transitions. Ambiguity is classified, never patched with a convenient heuristic.

51 blocking gates80 SQL migrations379 test functions
Python · PostgreSQL · asyncioRedis · Docker · Prometheus

03 Delivery method

From an uncertain source to an operated data product.

The same sequence works whether the destination is a dashboard, a forecast, an AI assistant or a model-training set. The output changes; the trust obligations do not.

  1. 01

    Define the decision

    Start with the decision, user and acceptable delay. Technology follows the consequence of being wrong or late.

    decision / owner / latency
  2. 02

    Contract one row

    Fix the grain, identifiers, timestamps, allowed states and source of truth before building a transformation.

    grain / keys / semantics
  3. 03

    Retain the raw trail

    Store original responses and load metadata so parser fixes, backfills and audits are reproducible rather than hand-patched.

    source / loaded_at / version
  4. 04

    Gate publication

    Validate freshness, completeness, uniqueness, reconciliation and point-in-time correctness before data reaches a model or decision surface.

    tests / quarantine / publish
  5. 05

    Evaluate over time

    Use walk-forward evaluation, uncertainty estimates and shadow operation before automating a consequential decision.

    as-of / replay / shadow
  6. 06

    Operate the record

    Treat retries, backfills, ownership, lineage and reason-coded SLOs as product behavior—not post-launch cleanup.

    observe / explain / recover

04 Tooling

A working stack, organized by responsibility.

Tools are selected around data grain, recovery needs and operational consequence—not around a fixed platform diagram.

Build & operate

Production services and data paths

PythonSQLPostgreSQLSQLiteRedisDockerFastAPIPrometheus

Model & verify

Reproducible analysis and quality gates

NumPySciPyDuckDBpytestwalk-forwardbootstrapdata contractsreconciliation

Ingest & recover

Source collection, durable history and replay

REST APIsWebSocketsasyncioscheduled workersraw snapshotsquality auditsSQL migrationsreplay & backfills

AI engineering

Faster delivery with evidence and review

ClaudeOpenAIagent workflowseval harnessesprovenanceMCPcode reviewtest generation

REBUILD WITHOUT GUESSWORK

Change the system without erasing how it got there.

The recurring pattern across these projects is pragmatic: retain the originals, version transformations, separate failure domains and make replay and recovery ordinary operations.
OPERATING PATTERNRESULT
Original responses retainedRebuildable source trail
Versioned computationsReplayable derived state
Scheduled workers and retriesExplicit recovery states
Separated analytical workloadsIsolated stores and failure domains
Explicit service boundariesScoped access and release gates

05 Engineering boundaries

Automation moves quickly. Decision rights stay explicit.

I use AI to shorten implementation and review loops. The production boundary remains unchanged: people own semantics, publication rules, security and release consequences.

AUTOMATION CAN PROPOSE
  • Python and SQL changes
  • test cases and edge conditions
  • documentation and runbooks
  • alternative implementations
PUBLICATION REQUIRES
  • defined grain and semantics
  • valid time and source lineage
  • reconciliation and security review
  • release owner and rollback path

06 Contact

Building an AI or analytics product that cannot afford plausible-but-wrong data?

Let's design the source trail, validation gates and operating record before the model becomes the most convincing part of the system.

Start a conversation