Mert Özen Further With Every Line

Blog

Mert Özen's blog posts on software development, backend, frontend, and DevOps.

Series
18 posts found
Deployment Diagrams: Nodes, Artifacts, Execution Environments and a Docker/Azure Topology
Software Design PART 13

Deployment Diagrams: Nodes, Artifacts, Execution Environments and a Docker/Azure Topology

A deployment diagram shows which nodes and execution environments the software runs on, which artifact is placed where, and over which protocol and port the nodes talk. In this post we draw the HR Portal's docker compose development environment and its Azure production topology, and build the «manifest» bridge between artifacts and components.

7 Nov 2026 10 min 6
The C4 Model: Context, Container, Component, Code and Notation Rules
Software Design PART 14

The C4 Model: Context, Container, Component, Code and Notation Rules

The C4 model describes a software system as zooming maps at the Context, Container, Component and Code levels, each for a different reader; the first two levels are enough for most teams, and a C4 container is not a Docker container but a running application or data store. In this post we draw the HR Portal's Context, Container and Component diagrams following the notation checklist, write them as C4-PlantUML and show how to use C4 together with UML.

7 Nov 2026 11 min 4
ER Diagrams: Chen and Crow's Foot Notation, Cardinality, Optionality and from Class Diagram to Tables
Software Design PART 15

ER Diagrams: Chen and Crow's Foot Notation, Cardinality, Optionality and from Class Diagram to Tables

An ER diagram shows which tables hold the data and the minimum and maximum number of records at both ends of every relationship: Chen suits concept conversations, Crow's Foot suits table and FK conversations. In this post we draw the leave module in both notations, show how composition, association classes and inheritance become tables with real EF Core output, and generate a Mermaid erDiagram straight from the EF Core model.

7 Nov 2026 15 min 5
Diagrams as Code with PlantUML: Syntax, C4-PlantUML, Includes and Rendering in CI
Software Design PART 16

Diagrams as Code with PlantUML: Syntax, C4-PlantUML, Includes and Rendering in CI

PlantUML describes a diagram in a text file and renders it locally or in CI, so the diagram changes in the same PR as the code, gets diffed and is validated with --check-syntax. This post walks through the PlantUML sources of the series' use case, class, sequence, state and C4 diagrams, sharing a style with !include, rendering in GitHub Actions, and the privacy risks of the public server and the source embedded in SVGs, with real output.

7 Nov 2026 14 min 5
Mermaid and Structurizr DSL: Diagrams Inside Markdown, Model-Based C4 and Which One to Choose
Software Design PART 17

Mermaid and Structurizr DSL: Diagrams Inside Markdown, Model-Based C4 and Which One to Choose

Mermaid is the right tool for quick diagrams that render directly in GitHub and Azure DevOps Markdown, the Structurizr DSL for deriving consistent C4 views from a single model. This post converts the series' diagrams to Mermaid and shows its syntax traps with real output, draws the same container diagram with Structurizr and compares PlantUML, Mermaid and Structurizr.

7 Nov 2026 15 min 6
End-to-End Modeling: Taking the Leave Module from Requirements to Working Code
Software Design PART 18

End-to-End Modeling: Taking the Leave Module from Requirements to Working Code

Diagrams pay off when they form a traceable chain from requirement to endpoint, from state machine to domain code and from ER to migration, and when they answer "which diagram changes?" before a change is made. In the series finale we take the leave module to .NET 10 API, EF Core and Angular 22 code, measure the impact of a half-day leave requirement with git diff and show the real bugs the diagrams caught along the way.

7 Nov 2026 17 min 4
Blog Map