Architecture decides how expensive a change will be in two years. Cut the boundaries between services in the wrong place and you get a distributed monolith: many deployments, but every change reaches into five repositories. Distribute too early and a small team pays operational cost for complexity it does not need yet. So my goal is not the most elegant architecture, but the one your team can actually run and evolve.
I am a senior software engineer with architecture experience, not a certified enterprise architect – and that is exactly what changes the collaboration. My designs come out of building: at DVV Duisburg I was the software architect for a company-wide microservice architecture, and I have spent more than ten years inside grown systems built with Java, .NET, PHP, Python and TypeScript. What I propose, I have built and operated myself.
An architecture concept nobody reads helps nobody. So I keep decisions short and traceable – which options existed, why one was chosen and under which conditions it should be reconsidered. That way the knowledge stays in your company, even after I leave the project.