Blog

Blog Post

From Vibe Coder to Agentic Engineer

I no longer read every line of code that’s produced in my projects. I think most people who work intensively with AI agents feel the same way. When an agent produces a thousand lines in ten minutes, line-by-line review is no longer realistic. At the same time, that code ends up in production, and someone has to take responsibility for it.

Blog Post

The Right Kind of Hard

More structure, more output, more exhaustion. Spec-driven development has helped me get better results from AI agents – and drained my energy in the process. About dead weight, false clarity, and hidden costs I didn’t plan for.

Blog Post

AI Features for Jira Data Center – No Atlassian Cloud Required

Our Digital Independence Day recipe for going off-cloud

Blog Post

Where AI Helps (and Hurts) Across Different Coding Scenarios

Where does LLM-assisted software development improve developer productivity—and where does it fall short? Instead of treating AI in software development as a one-dimensional productivity booster, we explore the question across several dimensions suggested by a Stanford-adjacent study: project maturity, task complexity, and the popularity of the programming language. The goal is to create a more realistic expectation baseline for both software developers and leaders—well away from today’s hype.

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

How AI agents actually benefit from hypermedia

Blog Post

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

Spec-driven development tools like BMAD promise to fix the requirements bottleneck that agentic development teams face. But is it actually a good fit for your organisation?

Blog Post

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?

A story of unleashed productivity and mental load

Blog Post

Understanding AI Coding Patterns Through Cognitive Load Theory

AI coding assistants either severely harm learning or enhance it beyond manual coding—depending entirely on interaction patterns. A recent study reveals six distinct patterns with dramatically different outcomes. We’ll examine why through cognitive psychology and explore the study’s limitations.

Blog Post

Neuland reloaded

When Angela Merkel said in 2013 that the internet is ‘Neuland’ (uncharted territory) for all of us, the amusement online was considerable. Viewed from some temporal and substantive distance, one can now recognize a perspective from which she was indeed correct.

Blog Post

From Vibe Coder to Code Owner

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.

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

How the Lethal Trifecta Makes Today’s AI Assistants Unsafe by Design

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

I sandboxed my coding agents. You should too.

My Lima VM + JetBrains Gateway setup for safe agentic development

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

Why not scatter @Transactional everywhere?

@Transactional — great when you know when not to use it. Use it consciously instead of sprinkling it everywhere!

Blog Post

From FOMO to Focus

Clear Priorities in the AI Jungle with AI Opportunity Mapping

Blog Post

Speed vs. Skill

Every AI coding tool promises the same thing: unprecedented speed, effortless productivity, freedom from tedious work. The pitch is compelling. But what if feeling more productive and being more capable aren’t the same thing? Research shows that automation makes us feel more productive while eroding our skills. Let’s examine this tension through the lens of cognitive psychology.

Blog Post

Context Engineering: Managing AI-Generated Code Complexity

AI tools make developers more productive at writing code, but can overwhelm code reviewers with massive changes. Learn practical strategies for managing context in AI-assisted development to keep your code comprehensible, your reviews manageable, and your team’s productivity genuinely improved. Small scope was always good practice—with AI, it’s essential.

Blog Post

Swiss Army Knife for Salesforce: LLM with In-Memory Database

Blog Post

Git Clarity: Building Meaningful Commits and Linear History

Feeling overwhelmed by Git’s complexity? Discover a streamlined workflow that centers on creating single, comprehensible commits. Learn how this approach leads to clearer code reviews, fewer merge conflicts, and a beautiful linear commit history that tells the story of your code. This isn’t just about Git commands—it’s about aligning your tools with how your brain works.