Skip to main content
Welcome. This site supports keyboard navigation and screen readers. Press ? at any time for keyboard shortcuts. Press [ to focus the sidebar, ] to focus the content. High-contrast themes are available via the toolbar.
serard@dev00:~/cv

Design Patterns & Architecture

SOLID (Applied, Not Theoretical)

  • Single Responsibility — each source generator, DSL, and library owns one concern
  • Open/Closed — extension points and middleware pipelines; attributes declare intent, generators handle evolution
  • Liskov Substitution — hand-written Fakes satisfy interface contracts identically to real implementations
  • Interface Segregation as primary driver — 1-method interfaces as standard across the ecosystem
  • Dependency Inversion via optional constructor parameters with defaults — no DI container required

Custom Patterns (FrenchExDev Ecosystem)

  • Domain-Driven Design — attribute-based, no base classes: [AggregateRoot], [Entity], [ValueObject], [Command], [DomainEvent], [Invariant]
  • CQRS — lightweight (interface-level separation, no event sourcing): ICommandHandler<TCommand, TResult>, IQueryHandler<TQuery, TResult>, direct injection (no mediator)
  • Result Pattern — composable Result<T, TError> types replacing exceptions: Map, Bind, Recover, Tap, Ensure
  • Builder Pattern — source-generated async construction with fluent API, validation, circular reference detection
  • Finite State Machine — async-first, three-tier (Dynamic/Typed/Rich), guards, entry/exit/transition actions, hierarchical states with LCA, parallel regions, deferred events, timer transitions, 8-point listener interface, Mermaid/Graphviz export, source-generated, Result monad integration
  • Meta-metamodeling (M3) — 5 self-describing primitives ([MetaConcept], [MetaProperty], [MetaReference], [MetaConstraint], [MetaInherits]) forming the foundation for all DSLs

POSA (Architectural)

  • Layers — M0→M1→M2→M3 metamodel, bounded context separation
  • Pipes and Filtersdesign pipelines, middleware chains
  • Microkernel — plugin architecture (Diem CMF extensibility)
  • Reflection — M3 meta-metamodel (types describing types)

GoF (Design)

  • Strategy — pluggable parsers (GNU, Cobra, argparse, custom)
  • Factory — source generators produce typed instances at compile time
  • Observer — domain events, SignalR notifications
  • Visitor — Roslyn syntax tree walking
  • Composite — requirement hierarchy, DOM trees
  • AdapterAnti-Corruption Layers translating between bounded contexts
  • ProxyBinaryWrapper typed proxies over raw CLI binaries
  • Chain of Responsibility — middleware pipeline, design pipeline stages
  • Decoratortyped specs on features
  • Template Method — attribute-based DSLs (declare intent, generator handles implementation)