Field notes, sorted by subject.

This is the Pexon engineering blog: every post belongs to one business area hub and is also listed here by date. The hubs collect posts on one subject: running open-weight models on hardware you control, rolling Claude out across an enterprise, and making SAP, MES and PLM data reachable for AI systems.

Every post, newest first

What we have written, and when.

68 posts

  1. Private AI · inference performance

    KV Cache Size: Why 32k Context Runs Out of Memory

    KV cache size grows linearly with context: 5 GiB at 32k tokens for Mistral NeMo 12B, measured. The n² attention matrix is not what fills a 12 GB card.

    8 min read · Flavius Moldovan

  2. Private AI · inference performance

    LLM Batching: 6.8x the Throughput at 4.7x the Latency

    LLM batching measured on one 12B model: 28 tokens/s for one user, 194 for 32 together, each of them 4.7 times slower. Where the trade turns.

    8 min read · Flavius Moldovan

  3. Private AI · inference performance

    Prefill vs Decode: Why Token Generation Ignores TFLOPs

    Prefill vs decode, measured on one 12B model: 284 tokens/s reading the prompt, 29 tokens/s writing the answer. Decode is bound by memory bandwidth.

    9 min read · Flavius Moldovan

  4. Claude and Anthropic · mcp

    Windchill REST API for AI Agents: 4 Places It Breaks

    The Windchill REST API can serve AI agents, but four things break a naive MCP server: one shared account, default config specs, POST reads and mixed write tools.

    11 min read · Phillip Pham

  5. Data foundation · source systems

    Grid control archive: read the history, do not switch

    A grid control archive is the history PSIcontrol, PSIprins, Spectrum Power 5 or HIGH-LEIT already keeps. The assistant may read it. A setpoint is not a question.

    5 min read · Phillip Pham

  6. Data foundation · source systems

    Meter data gateway: read the value, do not administer

    A meter data gateway holds the values BTC, co.met or GWAdriga already forward. The assistant may read a value. Gateway administration is a different right.

    5 min read · Phillip Pham

  7. Data foundation · source systems

    CRM quote questions: read the quote, do not accept it

    CRM quote questions an agent may answer: which quotation is open, its status, the customer. Accepting it, or turning it into an order, stays a click in the CRM.

    5 min read · Phillip Pham

  8. Data foundation · source systems

    CRM sales questions an agent may ask the pipeline

    CRM sales questions with a documented read: open deals, the owner, the next date. Stage changes, sends and deletes are not questions. They are edits.

    5 min read · Phillip Pham

  9. Data foundation · source systems

    DATEV API: what an agent may read, and may not post

    The DATEV API splits in two: DATEVconnect on the workstation for account postings, and the cloud gateway for accounting sequences. An agent may read, not post.

    6 min read · Phillip Pham

  10. Data foundation · source systems

    Utility billing integration: what an agent may read

    Utility billing integration for a Stadtwerk: the agent reads a contract on Schleupen.CS under the caller's login. Market messages stay in the billing system.

    9 min read · Phillip Pham

  11. Data foundation · source systems

    Energy data management: what an agent may not send

    Energy data management at a Stadtwerk sits in BelVis, Robotron or SOPTIM. An agent may read a schedule status. Sending that schedule stays inside the system.

    8 min read · Phillip Pham

  12. Data foundation · source systems

    Utility network documentation: GIS, Lovion and SAP PM

    Utility network documentation at a Stadtwerk lives in Smallworld, Lovion and SAP PM. An agent may ask which meters an outage covers. It does not edit the model.

    8 min read · Phillip Pham

  13. Private AI · assistants

    ChatGPT Alternative: Which One Fits, and When to Stay

    A ChatGPT alternative by constraint: Claude for long work, Perplexity for citations, Mistral for EU hosting, or self-hosting when prompts must stay in-network.

    13 min read · Phillip Pham

  14. Claude and Anthropic · mcp

    Dynamics 365 MCP Cost: What Claude Pays per Tool Call

    Dynamics 365 MCP cost for Claude: 0.1 Copilot Credits per tool call to Microsoft, then the token bill, which is usually the larger line. Worked out in euros.

    8 min read · Phillip Pham

  15. Claude and Anthropic · claude code

    Claude Code audit trail: Claude API audit vs local disk

    Claude Code audit trail: a Claude API audit uses the Compliance API, not the Activity Feed. Transcripts stay six years. Bedrock, ZDR and ~/.claude stay yours.

    9 min read · Phillip Pham · updated 6 Oct 2026

  16. Claude and Anthropic · cost

    Claude Prompt Caching Pricing: 0.1x Read, 1.25x Write

    Send Claude the same long document twice: prompt caching writes it at 1.25x and reads it at 0.1x inside five minutes. Batch processing is billed at 50 percent.

    15 min read · Noel Dinger · updated 29 Sept 2026

  17. Company brain · rag

    How to Build a RAG System: The Complete Guide

    RAG system build guide: chunking strategies, embedding models, vector search, retrieval quality, evaluation, and the rollout that survives a security review.

    9 min read · Phillip Pham

  18. Private AI · inference serving

    llm-d: Distributed Inference on Kubernetes

    llm-d is the Kubernetes-native stack above vLLM: cache-aware routing, optional prefill/decode split, founded by Red Hat, Google, IBM, CoreWeave and NVIDIA.

    5 min read · Phillip Pham

  19. Private AI · open weight serving

    Nemotron: NVIDIA Open-Weight Models for Private AI

    Nemotron is NVIDIA's open-weight family. Nemotron 3 Ultra is 550B/55B MoE, OpenMDW 1.1, self-hostable when prompts must stay on your GPUs.

    5 min read · Phillip Pham

  20. Company brain · agentic ai

    Scaling AI Agents: Multi-Agent Design Is the Answer

    Scaling agents is not about more infrastructure. Errors propagate, costs grow nonlinearly, and one agent owning everything becomes the bottleneck.

    5 min read · Phillip Pham

  21. Private AI · model routing

    GLM 5.3 Flash: Frontier Behaviour at a Flash Price

    GLM 5.3 Flash: open-weight, 1M context, and an audit of 1,000+ PRs for 12 cents where a frontier model costs over $100. Routing just got cheaper.

    6 min read · Phillip Pham

  22. Claude and Anthropic · eu hosting and gdpr

    Claude GDPR Checklist: 14 Checks Before You Roll Out

    There is no GDPR switch in Claude. Fourteen checks decide whether a rollout is lawful — contract, processor, retention, transfers, records — and who owns each.

    15 min read · Phillip Pham

  23. Claude and Anthropic · coding agents

    Vibe Coding Explained: Where It Works and Where It Stops

    Vibe coding means describing software to an AI instead of writing it line by line. The opportunities, the limits, and the review that keeps it out of production.

    7 min read · Phillip Pham

  24. Claude and Anthropic · cost

    Claude API Cost — the Token Math Behind a Real Bill

    Claude API cost: input, output and cache pricing per model, the token multiplier that catches teams, and how to forecast a bill from your actual traffic.

    5 min read · Phillip Pham

  25. Private AI · inference platform

    Azure AI Foundry vs. Kubernetes for LLM Workloads

    Azure AI Foundry vs Kubernetes for LLM workloads: managed model serving against self-operated inference on AKS. Cost, control, GPU scaling and when each wins.

    6 min read · Noel Dinger

  26. Private AI · llm gateway

    LiteLLM Proxy: virtual keys, budgets, EU control

    LiteLLM proxy: Docker first, virtual keys not the master key, budgets per team. Self-hosted for control, not cheaper tokens. Monitor before the first incident.

    9 min read · Phillip Pham

  27. Claude and Anthropic · claude code

    Claude Code vs GitHub Copilot: cost, tenant, audit

    Claude Code vs GitHub Copilot: Copilot wins central policy, Claude wins per-developer cost. Own tenant vs GitHub's, 10% residency premium, 180-day vs six-year audit.

    21 min read · Phillip Pham

  28. Claude and Anthropic · copilot

    Copilot vs. Own AI Platform — Cost Math for Enterprise AI

    3-year TCO: copilot vs own ai platform — Copilot at ~€26/user/month vs. open AI platform at €0.02–0.05/user/day. Breakeven point, hidden costs, option comparison.

    12 min read · Noel Dinger

  29. Claude and Anthropic · claude code

    Claude Code pricing: the 2,500 euro bill explained

    Parallel terminals and night agents, not the licence, drive Claude Code pricing to 2,500 euros a month — about 1.5 senior engineers. How IT leaders budget it.

    7 min read · Phillip Pham

  30. Claude and Anthropic · cost

    Claude Token Costs: Cheaper Per Token, Not Per Task

    Claude token costs are not a stable unit: Anthropic documents that 4.7 and later produce about 30% more tokens for the same text. Compare per task instead.

    5 min read · Noel Dinger

  31. Claude and Anthropic · claude code

    When Not to Use AI Agents, and What Wins Instead

    When not to use AI agents: four problem shapes where a script, a form or a person wins, and the one question that separates them from the cases agents suit.

    5 min read · Phillip Pham

  32. Data foundation

    Permission-Aware Retrieval: Test the File Share Next

    The demo passed on curated files. Permission-aware retrieval fails when the file share has no permission metadata on each chunk. Test that before the next pilot.

    12 min read · Noel Dinger · updated 29 Sept 2026

RSS feed · every new post, in any feed reader

How this is organised

One subject, one place.

Every post hangs off exactly one business area, and each area has a hub that collects everything written about it. The list above shows the same posts by date, so you can see what is new without losing the subject a post belongs to.

That is partly for readers — if you came here because you have to run models inside your own network, you should not have to scroll past six posts about SAP extraction to find the two that matter. It is also the honest structure for the subject. These areas do not overlap much in practice: the people fighting a permission model in SharePoint are rarely the same people negotiating GPU capacity.

What you will not find here: benchmark tables lifted from a vendor deck, customer names we have not been given permission to use, or a post that ends in a demo request. Where we cite a number, the source and its date are on the page.

Common questions

Why is the blog organised by business area as well as by date?

Because a date-only feed buries the useful posts within weeks. Every post belongs to one business area hub, which keeps a subject in a single place for readers and for answer engines resolving a topic to a source. The list on this page adds the date view on top, filterable by area.

Who writes these posts?

The engineers who run the engagements, not a content agency. Posts a named engineer has agreed to sign carry that byline; the rest are published under the company rather than under an invented name. Anything we have not built ourselves is described as an approach, not as experience we already have.

How to start

Not a sales call. An architecture call.

Thirty minutes with the architect who would actually run the engagement.