Skip to content

Blog

Short, practical write-ups of how I do the work. Free to use in your own team.

11 min read

3,025 pull requests in ten months: an AI-assisted delivery process, from the inside

A training platform for education providers started in an AI app builder and is now a multi-tenant SaaS with a web app, native iOS and Android apps, 160 serverless functions and 1,048 automated test files. Over ten months, 3,025 pull requests were merged into it, most of them written by coding agents and every one of them reviewed, tested and released through the same seven stages. A second platform, for a hospitality business, went through 2,133 in six months the same way. This is what that process looks like day to day, where the two hard gates sit, and what I would set up first if I started again tomorrow.

Read the article

11 min read

The EU AI Act for mid-sized companies: what applies to you, and when

Most mid-sized companies don't build AI models. They use them: a chatbot on the website, an assistant in sales, Copilot in the IDE, maybe a tool that pre-sorts job applications. That makes them deployers in the language of the AI Act, and the obligations for deployers are far lighter than the headlines suggest, with a few important exceptions. Since the AI Omnibus entered into force on 27 July 2026, the dates for high-risk systems have also moved. This is the practical version: which role you have, which of your use cases fall into which risk class, what already applies today and what you should prepare for December 2027. It's an engineer's overview, not legal advice.

Read the article

11 min read

FinOps for AI spend: tokens, caching, routing and budgets that hold

AI bills behave differently from cloud bills. There is no idle server to switch off at night; every question a customer asks, every document an agent reads and every retry in a loop is paid by the token, and one feature with a long system prompt can quietly cost more than the rest of the platform. The good news: the same discipline that cuts cloud costs works here, with a few new levers. This is the order I use, with the AI guide on this site as a running example.

Read the article

10 min read

Making a restaurant network visible in AI answers: a GEO project, step by step

Guests no longer only search 'restaurant near me'. They ask ChatGPT for a quiet Italian place for six people on Friday, or let Google's AI Mode compare three options. A European hospitality platform with a large network of restaurant websites wanted to know how often that already brings guests, and how to get its restaurants into those answers. This is the anonymised write-up of that project: three phases, assess, select and sprint, from the first baseline to ten ranked experiments and two working proofs of concept. What we measured, what we tried, and what I would do the same way again.

Read the article

10 min read

How this site is built: static where it can be, streaming where it must

This site is also a reference project. It has three languages, dozens of pages, more than a dozen interactive tools and an AI guide that answers while it writes. It scores 100 in all four Lighthouse categories on mobile and runs on the free tiers of Azure Static Web Apps and the Gemini API. None of that needs an exotic stack: React, Vite, a prerender step and a handful of checks that refuse to deploy anything broken. Here is how the pieces fit, including two things I only found out by measuring.

Read the article

10 min read

Kubernetes cost on EKS and GKE: the same playbook, different levers

My AKS playbook took a production cluster from 7 to 4 nodes by sizing requests on real p95 usage and letting the autoscaler do the shrinking. The method carries over to Amazon EKS and Google Kubernetes Engine unchanged. What changes is where the bill comes from and which buttons each cloud gives you: Karpenter and split cost allocation on AWS, Autopilot's Pod-based billing and cost allocation on Google Cloud. This is the companion guide for both.

Read the article

11 min read

A landing zone for mid-sized companies, in Terraform or Bicep: the parts that matter

A landing zone is the prepared ground your cloud workloads land on: the account and subscription structure, guard rails, identity, network, logging and cost control, all set up before the first application arrives. Enterprise reference architectures can look like they need a platform team of twenty. A mid-sized company needs the same ideas in a smaller size, written as code, so a team of two can run it. Here is the version I build.

Read the article

11 min read

The legacy migration playbook: waves, parallel runs, and identical row counts and checksums

Every company has a system nobody wants to touch: an old database, a monolith, two tools that must stay in sync. Big-bang migrations of such systems are where weekends and reputations go to die. The approach that works is boring on purpose: map first, move in waves, run old and new side by side, and switch only when the numbers are identical. This is the playbook I use, with the projects where it held.

Read the article

11 min read

MCP security in depth: how to let AI assistants into your product without opening the doors

An MCP server turns your product into something Claude, ChatGPT or a coding agent can operate. In one SaaS I run, everything you can do in the UI also works through MCP, including analytics and user data. That is powerful, and it means the MCP server needs the same security as the product itself, plus a few rules of its own: tokens bound to one server, tools with the smallest possible rights, a yes from the person before anything changes, and an audit trail for every call.

Read the article

10 min read

Monitoring on business outcomes: green dashboards, empty checkout

Every platform team knows the moment: CPU at 30 percent, no errors in the logs, all dashboards green, and customers have not been able to pay for two hours. Classic monitoring watches the machines. What the business needs to know is whether people can do what they came for: book, pay, sign up. This is how I set up monitoring that watches outcomes, catches problems from the outside before customers report them, and stays quiet enough that people still read the alerts.

Read the article

10 min read

Phone AI agents: the architecture, and the pitfalls nobody shows in the demo

A voice agent that takes the call, books the appointment, answers the usual questions from your knowledge base and hands over to a person when needed: that is one of the most requested AI projects right now. The demo is easy. What makes it work on a real phone line is timing, interruptions, a clean hand-over and the legal basics. Here is the architecture I use and the pitfalls to plan for.

Read the article

9 min read

Restore tests: a backup you have never restored is only a hope

Most backup dashboards are green. They report that a job ran and a file was written, which says nothing about whether you can get your business back from that file, how long it takes, or whether the copy survives an attacker with admin rights. The only proof is a restore. On the platforms I run, backups are written every few hours outside the hosting provider and restored every night into an isolated twin, automatically. This is how to set that up.

Read the article

10 min read

Streaming AI answers on Azure Static Web Apps: the one header that buffered everything

The AI guide on this site used to show its answer only when it was complete: two and a half to three seconds of bouncing dots, then a wall of text. Streaming fixes that, because the text appears while the model is still writing. Some framework documentation says Azure Static Web Apps buffers every function response, so streaming can't work there. It can. But one small detail in a single response header held back the whole answer, and it took a controlled experiment to find it. This is the setup that works, the experiment, and the code.

Read the article

11 min read

Building an AI assistant for WhatsApp, end to end: what it takes beyond the demo

A demo that answers a WhatsApp message with an AI takes an afternoon. An assistant a hospitality business can trust with its guests takes more: it has to answer only what it knows, act in your systems without surprises, admit when it doesn't know, and get better from your team's replies. This is how I built StillAnswer, the assistant that runs for a surf school and hostel, and the lessons that shaped it.

Read the article

10 min read

Air-gapped systems: running critical software with no internet

Some systems must never talk to the internet: a live broadcast control room, a hospital network, a production line, a lab with export-controlled data. For years that meant giving up modern tooling. It doesn't anymore. You can run Kubernetes, GitOps, signed images and proper monitoring inside an enclave that has no route out, as long as you treat the boundary as a process and not just as a missing cable. This is how I build and run them.

Read the article

11 min read

Production AI on AWS: Amazon Bedrock and AgentCore in a private setup

On AWS, the pieces for a production agent have changed more in the last twelve months than in the three years before: Bedrock Agents became Agents Classic, AgentCore took over as the agent platform, and Bedrock now has four inference tiers. This is the setup I would build today for an agent that has to pass a security review: least-privilege IAM, PrivateLink instead of the internet, a managed knowledge base, guardrails on input and output, evaluations in the pipeline and every invocation logged. All facts link to the AWS documentation.

Read the article

11 min read

Production AI on Microsoft Foundry: a private reference setup for agents

Most AI pilots on Azure start with a key copied into an app and a model endpoint open to the internet. That works for a demo and fails the first security review. This is the setup I use when an agent has to go live on Microsoft Foundry: Entra ID instead of keys, everything behind private endpoints, guardrails on every step of the agent, evaluations before each release and traces in Application Insights. Every claim links to the official Microsoft pages, so you can check it.

Read the article

10 min read

/goal, /loop or routines: stop babysitting your coding agent

If you still type a prompt, wait, read the answer and type the next one, your coding agent is exactly as fast as you are. Claude Code now has three ways to let it keep going on its own: /goal works until a condition is true, /loop repeats a prompt on an interval while your session is open, and cloud scheduled tasks, which most people still call routines, run when your laptop is closed. They look similar, but they solve different problems. Pick the wrong one and the task stops too early, runs forever or burns more of your plan than it saves. This is how I choose between them in client projects, and how I set each one up so I can review results instead of every single step.

Read the article

9 min read

Claude's new plans: Max, Ultra and what they mean for teams

At the end of October Anthropic renamed its two top personal plans and changed how limits work on the biggest one. If your engineers use Claude Code all day, this decides whether a long agent run stops in the middle of the afternoon, and whether you are paying for capacity nobody uses. The change itself is small. The questions it raises in companies are bigger: which seats for whom, what the new API credits actually cover, and why personal plans are the wrong answer for company work even when they look cheaper. Here are the facts from Anthropic's pricing page and help center, and how I would handle them in a team.

Read the article

10 min read

OpenAI Codex at the end of 2026: goal mode, dots and how to lock it down

I use Codex next to Claude Code in my own work, and it changed more this year than any other tool on my desk. It is part of the paid ChatGPT plans, it can chase a goal for hours, since September there are dots, always-on agents with their own cloud computer, and a cheaper model arrived at the end of October. That is a lot of autonomy to hand to a team at once. Most of the risk doesn't come from the model but from defaults nobody looked at: a sandbox that is wider than needed, approvals switched off on a laptop with production access. This is what is worth using today, and the exact settings I put in place before a team starts.

Read the article

11 min read

GitHub Copilot, Claude Code or Codex? How I'd choose for a company

I get this question in almost every first call, usually phrased as 'which one writes the best code?'. That's the wrong question. All three write good code, open pull requests and can work on their own for hours. What actually differs is where they live, how far they go without a human, how your security team can control them and how they are billed. Get those four wrong and you end up with three tools, no central policy and an invoice nobody can explain. This is the comparison I walk clients through, based on the vendors' own documentation and changelogs as of November 2026, plus the rules I set for all three before anyone starts.

Read the article

10 min read

GEO basics: how to show up in AI answers

Your customers no longer only type three keywords into Google. They ask ChatGPT, Gemini, Perplexity or Google's AI Mode a full question and get one answer with a handful of sources. If you are not one of those sources, you are invisible at the exact moment someone decides. Here is what generative engine optimization (GEO) really is, what works, and what is noise.

Read the article

11 min read

Production AI on Google Cloud: from Vertex AI to Gemini Enterprise Agent Platform

If you searched for Vertex AI lately and landed on something called Gemini Enterprise Agent Platform, you are not lost: Google renamed it on 22 April 2026. The building blocks for a production agent are still there, many with new names. This is the setup I would build today: separate projects and agent identities, a VPC Service Controls perimeter, RAG Engine on your own data, Model Armor in front of every model call, evaluations on real traces and provisioned capacity only when the numbers say so. Every claim links to Google's documentation.

Read the article

10 min read

Local LLMs in an air-gapped network: AI for your most sensitive data

The documents that would profit most from AI are exactly the ones nobody may upload anywhere: contracts, HR files, patient records, source code, engineering drawings. With an open-weight model inside an isolated network you get the benefits without a single byte leaving the building. Here is how I set it up, how models get in without internet, how to test them offline, and what to realistically expect.

Read the article

12 min read

I want to run a local LLM: which server should I buy?

Every second conversation about private AI ends with the same question: what hardware do we actually need? The honest answer starts with the model and the number of people using it, not with a product page. Here is how I size it, what the current options are in November 2026, and how the box becomes a service your team can use.

Read the article

11 min read

MiniMax M3: an open frontier model you can run yourself?

Clients with sensitive data keep asking me whether open models are finally good enough to run on their own hardware. MiniMax M3 is one of the most capable open-weight models of 2026: about 428 billion parameters, a context of one million tokens, and text, image and video as input. It's also big enough that 'run it yourself' needs a real plan. Here is what M3 is, what the numbers really say, what hosting it takes, and when I would use it.

Read the article

10 min read

Prompt research at scale with an open model

To know whether AI assistants recommend you, you need the questions your customers actually ask them, per page, per intent and per language. Writing hundreds of those by hand does not work, and sending your page content and internal notes to a public AI API is not always allowed. Here is the workflow I use: an open model such as Qwen running on your own machine turns your sitemap into a realistic prompt set, which a tracker like Semrush or Peec AI then runs every day.

Read the article

11 min read

SEO and GEO together: a practical audit in 6 steps

Most audits I see are either a 200-page SEO export nobody reads or a slide that says 'be visible in ChatGPT'. Neither changes anything. This is the audit I actually run: six steps, the same order every time, from 'can machines reach you at all' to 'are you cited, and is it getting better'. Each step ends with a short list of fixes, ranked by impact.

Read the article

11 min read

Right-size Kubernetes: the playbook that took a cluster from 7 to 4 nodes

Most clusters run on guesses: requests copied from a tutorial, node pools sized for a launch two years ago, and a cloud bill nobody can explain line by line. Every month you pay for capacity that sits idle, and every month it feels too risky to touch. Right-sizing fixes that without changing anything your customers see. This is the exact order I use, with the queries, manifests and commands, and it's how one production cluster went from 7 to 4 nodes with no customer noticing.

Read the article

11 min read

Private AI for sensitive data: a local LLM setup that passes the security review

Health records, customer contracts, unreleased financials: some data must never reach a public AI API, and your security team is right to insist. That usually ends the AI conversation, and the people who would benefit most keep copying text by hand. It doesn't have to. This is the architecture I use for private AI inside your own network: a test set first, the smallest model that passes it, retrieval that respects access rules, an anonymizer at the edge and an audit trail for everything.

Read the article

11 min read

From AI prototype to production: the eight layers I add, in order

App builders like Lovable, Bolt or v0 get you a working product in days. Then real customers, payments and personal data arrive, and the prototype starts to feel fragile: a small change breaks checkout, nobody knows whether the backups work, and the AI that built it keeps rewriting things. The usual advice is a rewrite. I've taken two such prototypes to production without one. These are the layers I add, in this order, and why the order matters.

Read the article

Free guides

The checklists I use with clients, as PDFs to keep and share with your team.

    Get in touch

    Tell me what you're building. I'll reply within 1–2 business days.

    Dominik Heinrich
    Company
    MADO Consulting

    Available worldwide, remote. On-site on request, depending on the country.

    I reply within 1–2 business days. Free slots: see the calendar

    Opens Calendly's booking calendar here. Loading it sends data to Calendly (see Impressum).