Blog & Articles

Blog Post

Spec-Driven Architecture: When Agents Build, Architecture Must Speak

Spec-Driven Development gives agents a clear foundation for implementation. What it doesn’t solve is how a portfolio of systems stays coherent. Spec-Driven Architecture applies the same principle at the architecture level, using contracts as versioned boundaries and guarantees—enforceable in agentic workflows and in the CI/CD pipeline.

Blog Post

REST Beats MCP

Instead of using dedicated APIs, agents can operate existing web applications directly. Like humans, they rely on the most consistent implementation of hypermedia and benefit from existing context, validation, and access controls. Using an expense report as an example, I show how agents can automate complex, context-dependent tasks—without having to implement new APIs.

Blog Post

Spec-Driven Development is Domain-Driven Design’s Impatient Cousin

Why BMAD won’t save you

Article

The right size of a Data Product

Setting the boundaries of data products incorrectly can lead to integration issues, unclear ownership and duplicated logic. This guide offers practical heuristics for creating data products of the right size.

Blog Post

Agents good in the end?

Software development consists of a constant chain of trade-offs. As long as I’ve been building systems, there have always been things you don’t do despite wanting to do them. But now, with agents, we can fulfill all our dreams and finally build everything we always wanted and had the feeling we were missing. Spoiler alert: we shouldn’t do that.

Blog Post

Understanding AI Coding Patterns Through Cognitive Load Theory

Developing with AI through the cognitive Lens

Article

Ein Ăśberblick der AI-assistierten Softwareentwicklung in 2026

Birgitta Boeckeler (ThoughtWorks), Heinrich Hartmann (Zalando) und Sven Johann haben sich über den aktuellen Status der AI-assisted Software Entwicklung unterhalten: was ist wirklich Wichtiges in 2025 passiert? Welche stabilen Muster können wir ableiten? Was gibt Orientierung und Einordnung? Und natürlich ein paar Einblicke in den Future of Software Engineering Retreat in Utah an dem Birgitta teilgenommen hat. Die Unterhaltung gibt es natürlich auch als Podcast. Dieser Artikel ist aber eine menschlich kuratierte Zusammenfassung.

Article

Features fĂĽr einen schnelleren JVM-Start

In diesem Artikel wollen wir uns mit dem Kritikpunkt der langsamen Startzeit der JVM beschäftigen. Dazu schauen wir uns an, was eigentlich beim Start passiert und mit welchen schon vorhandenen oder in Zukunft kommenden Features die Startzeit verbessert werden kann.

Article

Neuland reloaded

Blog Post

From Vibe Coder to Code Owner

AI agents generate thousands of lines of code in no time. If you want to fully leverage their potential, you can no longer review every single line – but you’re still responsible for the software. How do you take ownership of code you haven’t fully read? The answer lies in the agent harness: a system of deterministic checks, AI reviews, and targeted human review that enforces quality instead of hoping for it.

Blog Post

I sandboxed my coding agents. Now I control their network.

I want my AI coding agents to work independently, but I don’t want them to have unrestricted access to the internet. In this post, I describe how I routed all network traffic from my development sandbox through a strict proxy allowlist, allowing only a small set of explicitly approved domains. This setup finally gave me enough confidence to loosen the guardrails without constantly staying in the loop.

Article

Jeder kann Architekt sein!

Blog Post

Your Database Table is an awful API

A shared database table can feel like the ultimate shortcut: no API design, no contracts - just a schema. The catch is that this convenience quietly turns into friction: it blurs boundaries, slows change, and makes independent evolution harder than it needs to be. This article looks at why tables (and data-model-shaped “generated APIs”) are such a tempting trap - and what better integration boundaries look like.

Blog Post

Let’s Not Normalize Insecure AI Assistants

AI assistants like OpenClaw promise convenience, autonomy, and increasingly personalized help. But beneath that promise lies an architecture that quietly combines private data, internet access, and exposure to untrusted content—the lethal trifecta of security risk. Sandboxing and physical isolation help, but they don’t address the core problem. As we add more capabilities, the potential blast radius only grows. This post is a case for slowing down, questioning defaults, and refusing to normalize insecure architectures.

Blog Post

Die persönliche KI ist schon da

Wir sind vermutlich noch nicht darauf vorbereitet

Blog Post

What to Do While the AI Is Thinking

AI can write code while we wait — but that doesn’t mean we suddenly have free time. Whether we should think, multitask, review, or rest depends on what kind of work we are doing.

Blog Post

AI and Elaboration: Which Coding Patterns Build Understanding?

AI tools let you complete coding tasks without connecting new information to your existing mental models—a cognitive process known as elaboration that is crucial for building understanding. But some AI interaction patterns preserve this elaboration while others bypass it entirely. Let’s explore what elaboration is, why it helps with learning, and how we can use AI tools in a way that helps with this process rather than circumventing it.

Blog Post

Fetch-Tools vs. Browser-Rendering in Agenten-Setups

Blog Post

Leave It Better Than You Found It

Leave your code better than you found it. This advice, also known as the Scout Rule, sounds so simple, but what does it look like in practice? This is the story of how I followed the advice and cleaned up a fat controller along the way, and how this unexpectedly enabled us to handle new requirements quickly and with minimal effort. It’s a lesson in habits and continuous architecture.

Blog Post

I sandboxed my coding agents. You should too.

LLM coding agents are extremely powerful because they can run programs on our computers using our permissions. However, this same power also makes us very vulnerable. It only takes one mistake or one prompt injection to compromise the whole system.

Blog Post

Why not scatter @Transactional everywhere?

Article

Was, da geht noch mehr? Noch mehr Besonderheiten von und mit Java

Bereits vor ein paar Jahren haben wir uns Dinge angeschaut, die in Java funktionieren, aber sehr ungewöhnlich sind. Diese Liste werden wir in dieser Folge des Praktikers ergänzen.

Blog Post

From FOMO to Focus

AI is on every agenda – but where do you start? Many companies launch multiple AI initiatives in parallel, driven by the fear of missing out. The result: scattered resources, lack of prioritization, and unclear business impact. AI Opportunity Mapping provides a solution: it systematically guides you from vague AI visions to concrete, prioritized use cases with real business value. In five steps, teams develop AI opportunities in a structured way and make well-founded decisions. The result: focus instead of FOMO, clarity instead of chaos.

Blog Post

Speed vs. Skill

Developing with AI through the cognitive Lens

Article

Menschenlesbare Datenformate mit Jackson verarbeiten

Wir nutzen tagtäglich Datenformate. Zum Austausch von Informationen mit anderen Systemen oder auch zur Definition von Dingen wie unserem Build oder zur Konfiguration unseres Systems. Manche davon sind binär, aber auch viele bis heute direkt von Menschen lesbar. Für die Verarbeitung von JSON in Java hat Jackson eine hohe Verbreitung erreicht. Aber Jackson kann mehr als nur JSON, wie wir in diesem Artikel sehen werden.