Domain
Architecture & System Design
Skill Profile
Entities, Value Objects, Aggregates, Repositories, Domain Events, Specifications
Roles
5
where this skill appears
Levels
4
structured growth path
Mandatory requirements
12
the other 4 optional
Architecture & System Design
Domain-Driven Design
3/17/2026
Choose your current level and compare expectations. The items below show what to cover to advance to the next level.
The table shows how skill depth grows from Junior to Principal. Click a row to see details.
| Role | Required | Description |
|---|---|---|
| Backend Developer (C#/.NET) | Understands DDD tactical patterns in C#/.NET: Entity, Value Object, Repository with EF Core. Applies Ubiquitous Language in code using domain-specific naming. Implements Repository pattern with IRepository interfaces and specification pattern. | |
| Backend Developer (Java/Kotlin) | Understands DDD tactical patterns in Java/Spring: Entity, Value Object, Repository with Spring Data JPA. Applies Ubiquitous Language using domain-driven package structure. Implements Repository pattern with JPA repositories and custom queries. | |
| Backend Developer (Python) | Understands DDD tactical patterns in Python: Entity, Value Object, Repository with SQLAlchemy/Django ORM. Applies Ubiquitous Language through domain module naming. Implements Repository pattern using Abstract Base Classes and dataclasses for Value Objects. | |
| Technical Lead | Applies DDD Tactical Patterns when designing components. Understands trade-offs. Participates in architectural discussions. |
| Role | Required | Description |
|---|---|---|
| Backend Developer (C#/.NET) | Required | Applies DDD tactical patterns in C#/.NET: Aggregates with invariant enforcement, Domain Events via MediatR/MassTransit, Specification pattern. Designs aggregate boundaries aligned with transaction consistency. Implements rich domain models with EF Core value conversions. |
| Backend Developer (Java/Kotlin) | Required | Applies DDD tactical patterns in Java/Spring: Aggregates with JPA entity lifecycle, Domain Events via Spring Events/Axon, Specification pattern. Designs aggregate roots with optimistic locking and event-driven side effects. Implements rich domain models avoiding anemic anti-pattern. |
| Backend Developer (Python) | Required | Applies DDD tactical patterns in Python: Aggregates with SQLAlchemy unit-of-work, Domain Events via event bus, Specification pattern with filter objects. Designs aggregate boundaries using Python protocols. Balances rich domain model with Pythonic simplicity. |
| Solutions Architect | Required | Designs system architecture using DDD tactical patterns aligned with business domains. Makes ADR decisions on aggregate boundaries, event sourcing trade-offs, and CQRS applicability. Evaluates non-functional requirements impact on domain model design. |
| Technical Lead | Required | Designs codebase architecture with DDD tactical patterns. Establishes aggregate design guidelines, domain event contracts, and repository abstractions. Conducts architectural reviews ensuring proper separation of domain and infrastructure layers. |
| Role | Required | Description |
|---|---|---|
| Backend Developer (C#/.NET) | Required | Designs DDD architecture for the domain. Defines Bounded Contexts and Context Maps. Implements Anti-corruption Layer for legacy integration. Trains team on DDD. Balances DDD complexity with pragmatism. |
| Backend Developer (Java/Kotlin) | Required | Designs DDD architecture for Java/Spring domains with Bounded Contexts, Context Maps, and Anti-corruption Layers for legacy integration. Trains team on Axon Framework, event sourcing patterns, and aggregate design. Balances DDD complexity with delivery pragmatism. |
| Backend Developer (Python) | Required | Designs DDD architecture for Python domains with Bounded Contexts and Context Maps. Implements Anti-corruption Layer for legacy system integration using adapters and ports. Trains team on domain modeling with Python, balancing DDD rigor with Pythonic pragmatism. |
| Solutions Architect | Required | Defines product architectural strategy with DDD Tactical Patterns. Establishes architecture guidelines. Conducts architecture reviews. |
| Technical Lead | Required | Defines the product's architectural strategy with DDD Tactical Patterns. Establishes architecture guidelines. Conducts architecture reviews. |
| Role | Required | Description |
|---|---|---|
| Solutions Architect | Required | Defines organizational DDD architectural strategy. Designs reference architectures with tactical pattern catalogs and decision frameworks. Establishes architecture governance for domain-driven system design across multiple product teams. |
| Technical Lead | Required | Defines organization's DDD adoption strategy and reference architectures. Establishes architecture governance with pattern libraries, aggregate design guidelines, and domain modeling workshops. Shapes enterprise-wide domain-driven development culture. |