Manuel Holzrichter

Search

Deutsch

I’m Manuel. I have been building software for over 15 years.

I write about software architecture, automated testing, and what makes developers truly effective, including how to work well with AI. Practical insights from real projects, not textbook theory. More about me, or what I can do for your team.

2026

  1. One responsibility per component

    A component that serves several departments has several reasons to change - and every change for one of them can break the others. How to recognize when to split, and when splitting goes too far.

    7 min read

  2. One decision, one place

    Every decision that lives in more than one place will drift. How duplicated decisions create bugs long before anyone touches them - and why two identical numbers are not always a duplication.

    7 min read

  3. Making implicit concepts explicit

    The concept your business talks about every day often does not exist in your code. How to find implicit concepts, how to express them in the structure of the code, and why it turns complicated code into simple code.

    8 min read

  4. Refactoring legacy code without fear

    Without tests you have to walk slowly and carefully. With tests you can run. How to get a safety net into a legacy system that has none - and why the first tests are allowed to be wrong.

    9 min read

  5. The hidden cost of unmaintainable code

    Unmaintainable code does not fail loudly. It makes every change slower, riskier and more frightening. What it really costs, and how to turn legacy code back into simple, boring code.

    11 min read

  6. Why I never tell AI what to do

    Stop giving AI instructions. Describing the problem and asking questions first produces better results — the AI knows patterns, you know your context.

    7 min read

  7. Foreign systems will change - here's how to be ready

    External APIs will change without warning. How adapters and hexagonal architecture keep foreign systems at the boundary of your codebase.

    8 min read

  8. Why your software project is behind schedule (and over budget)

    Software projects rarely fail on technical work. They fail on long feedback loops, unvalidated trust, and gut-feeling estimates — all three fixable.

    9 min read

  9. Micro Frontends with Import Maps: The Lightweight Alternative to Module Federation - Part 2

    Compose micro frontends at runtime with import maps — a lightweight, browser-native alternative to Module Federation. No page reloads, no iframes.

    8 min read

  10. Why you always need to be wrong

    Assume you are wrong by default: why verification built into your workflow beats confidence, and how short feedback loops catch what you cannot see.

    6 min read

  11. Migrating from Monolith to Micro Frontends: A Step-by-Step Guide - Part 1

    A step-by-step guide to migrating a frontend monolith to micro frontends: extract a shared kernel, then split the first module into a standalone SPA.

    7 min read

  12. Why every developer needs a personal website

    Why every developer should build a personal website: practice explaining technical work to non-technical people, own your content, grow your career.

    5 min read

2025

  1. The role of writing

    Why writing is a developer's most underrated skill — clear prose sharpens thinking, spreads knowledge, and becomes a superpower in the age of LLMs.

    6 min read

2024

  1. The role of iterating

    Why small, iterative steps beat big-bang delivery: lessons from growing into an agile developer, one short feedback loop at a time.

    5 min read

  2. The role of tests

    How automated tests transformed twelve years of software development — a personal retrospective on quality, confidence, and lessons learned.

    9 min read