Skip to content
View ericksonlopezf's full-sized avatar

Organizations

@jeiyel

Block or report ericksonlopezf

Report abuse

Contact GitHub support about this userโ€™s behavior. Learn more about reporting abuse.

Report abuse
ericksonlopezf/README.md

๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‡ช๐Ÿ‡ธ Espaรฑol

Hi, I'm Erickson Lopez ๐Ÿ‘‹

Software Engineer & Architect

Engineering Ecosystem Header Graphic

Typing SVG


.NET Angular PostgreSQL TypeScript Docker GitHub Actions
License LinkedIn Twitter


๐Ÿ“‘ Table of Contents


๐Ÿš€ Welcome to the Ecosystem

Note

Welcome to my engineering playground and technical reference library. I'm Erickson Lopez. This space goes beyond a traditional portfolio. It's a living ecosystem where architectural concepts meet production-ready code.

Each repository here exists because it solves a concrete problem that surfaces in enterprise software engineering. Together they form an interconnected ecosystem where:

  • ๐Ÿ“ฆ Libraries (dotnet-shared-kernel, dapper-extensions-pg) provide reusable abstractions.
  • ๐Ÿ—๏ธ Reference implementations (dotnet-enterprise-api, angular-enterprise-app) demonstrate how these libraries compose into robust applications.
  • ๐Ÿ”ฌ Labs (postgresql-lab) provide reproducible benchmarks with measured EXPLAIN ANALYZE outputโ€”not just theory.
  • ๐Ÿงช Testing patterns (testing-patterns-dotnet) explore the spectrum from unit to architecture testing.
  • ๐Ÿ“– Documentation (engineering-handbook) records every architectural decision with direct links to the code that implements it.

Tip

The Goal: You should be able to navigate seamlessly from an architectural decision (ADR) โ†’ to the pattern that implements it โ†’ to the benchmark that validates it.



๐Ÿ—‚๏ธ Repository Matrix

Here is the current layout of the ecosystem. Every project is actively maintained and backed by continuous integration.

Repository Type Language Status CI Description
dotnet-shared-kernel ๐Ÿ“ฆ Library C# / .NET 10 Stable CI BaseEntity, Result<T>, ValueObject, Specification.
dapper-extensions-pg ๐Ÿ“ฆ Library C# / .NET 10 Stable CI UNNEST bulk ops, keyset pagination, advanced type handlers.
testing-patterns-dotnet ๐Ÿ“š Reference C# / .NET 10 Stable CI 5 chapters: Unit โ†’ Integration โ†’ Mutation โ†’ Architecture testing.
dotnet-enterprise-api ๐Ÿ—๏ธ Template C# / .NET 10 Stable CI Clean Architecture + CQRS + JWT + Minimal APIs.
angular-enterprise-app ๐Ÿ—๏ธ Template TypeScript Stable CI Angular 22 + Signals + Tailwind 4 โ€” Dashboard, CRUD, Auth.
postgresql-lab ๐Ÿ”ฌ Lab SQL Stable CI 10 labs, 2.2M rows, real EXPLAIN ANALYZE benchmarks.
engineering-handbook ๐Ÿ“– Docs Markdown Active โ€” ADRs, design principles, and operational runbooks.


๐Ÿ—บ๏ธ Architecture Map

The ecosystem is designed to be highly cohesive. This dependency map shows how the pieces interact.

graph TB
    subgraph docs["๐Ÿ“– Documentation"]
        EH["engineering-handbook<br/><i>ADRs ยท Principles ยท Runbooks</i>"]
    end

    subgraph libs["๐Ÿ“ฆ Libraries (NuGet)"]
        SK["dotnet-shared-kernel<br/><i>Result&lt;T&gt; ยท BaseEntity ยท Specification</i>"]
        DE["dapper-extensions-pg<br/><i>UNNEST ยท Pagination ยท TypeHandlers</i>"]
    end

    subgraph apps["๐Ÿ—๏ธ Applications"]
        API["dotnet-enterprise-api<br/><i>Clean Architecture ยท CQRS ยท JWT</i>"]
        SPA["angular-enterprise-app<br/><i>Angular 22 ยท Signals ยท Tailwind 4</i>"]
    end

    subgraph data["๐Ÿ”ฌ Data & Testing"]
        PG["postgresql-lab<br/><i>10 labs ยท EXPLAIN ANALYZE</i>"]
        TP["testing-patterns-dotnet<br/><i>Unit โ†’ Mutation โ†’ Architecture</i>"]
    end

    SK -->|NuGet dependency| API
    DE -->|NuGet dependency| API
    SPA -->|HTTP / JWT| API
    API -->|SQL| PG
    TP -.->|patterns applied in| API
    EH -.->|documents decisions in| API
    EH -.->|documents decisions in| SPA
    PG -.->|benchmarks inform| DE

    classDef lib fill:#1f3a5f,stroke:#58a6ff,color:#fff,rx:5px,ry:5px
    classDef app fill:#1a3a2a,stroke:#2ea043,color:#fff,rx:5px,ry:5px
    classDef data fill:#3a2a1a,stroke:#d29922,color:#fff,rx:5px,ry:5px
    classDef doc fill:#2a1a3a,stroke:#a371f7,color:#fff,rx:5px,ry:5px

    class SK,DE lib
    class API,SPA app
    class PG,TP data
    class EH doc
Loading


๐Ÿ› ๏ธ Technology Landscape

Rather than listing every tool, here are the core technologies and patterns that define this ecosystem's architecture, performance, and security.

๐Ÿ—๏ธ Core Architecture & Patterns

  • Backend Framework: .NET 10 (C# 13) โ€” Clean Architecture, Domain-Driven Design (Rich Domain Models).
  • Frontend Framework: Angular 22 (TypeScript) โ€” Modular, Standalone Components, Signals, Tailwind CSS 4.
  • Design Patterns: Result Pattern (error handling), CQRS (MediatR), Specification, Outbox Pattern.

๐Ÿ’พ Data & High Performance

  • Database: PostgreSQL 17 โ€” Advanced usage of JSONB, Full-Text Search (GIN), Keyset Pagination (0.31ms at page 25k).
  • Data Access: Dapper (Micro-ORM) โ€” Zero magic, explicit queries. Uses UNNEST arrays for 125k rows/sec insert throughput.
  • Caching & Messaging: Redis for distributed caching; RabbitMQ / Kafka for event-driven flows.

๐Ÿ›ก๏ธ Enterprise Security & Quality

  • Cryptography: BCrypt for hashing; DPAPI, AES, and Shamir Secret Sharing for advanced secret management.
  • DevSecOps Pipeline: GitHub Actions integrated with SonarQube, CodeQL, Trivy, and Gitleaks for automated auditing.
  • Testing Mastery: xUnit, AutoFixture, Bogus for unit/integration; Testcontainers for I/O; Stryker.NET for mutation testing.

โ˜๏ธ Cloud, Infra & Observability

  • Infrastructure as Code: Docker, Terraform, with a roadmap towards Kubernetes orchestration.
  • Observability: OpenTelemetry distributed tracing and structured logging for production readiness.


๐Ÿง  Engineering Principles

Important

The philosophy driving this ecosystem is Simplicity over cleverness and Measure, don't guess.

Design Goals

  • ๐ŸŽฏ Explicit over implicit: We use Result<T> instead of throwing exceptions for business logic. We write raw SQL instead of relying on opaque ORM generation.
  • ๐Ÿงฉ Composition over inheritance: The shared kernel provides lean abstractions consumed by the Enterprise API without deep inheritance chains.
  • ๐Ÿ“Š Measure, don't guess: Every performance claim is backed by postgresql-lab benchmarks (e.g., proving UNNEST's 125k rows/sec throughput).
  • ๐Ÿ“ Document the 'Why': The engineering-handbook houses Architecture Decision Records (ADRs) to explain reasoning, not just outcomes.
  • ๐Ÿงช Test behavior, not implementation: Unit tests verify strict domain rules; integration tests verify API contracts.

Key Architecture Decisions (ADRs)

ADR Decision Tangible Evidence
ADR-001 Result<T> over exceptions for business failures 0 catch blocks in enterprise-api
ADR-002 Dapper over Entity Framework Core 15x faster bulk insert throughput
ADR-003 Angular Signals over NgRx 60% less boilerplate, 0 KB bundle cost
ADR-004 Keyset pagination over OFFSET 0.31ms constant time at page 25k
ADR-005 FluentValidation in MediatR pipeline Handlers never receive invalid input


๐Ÿ“ Repository Standards

Consistency is key across the ecosystem. Every repository strictly adheres to these baselines.

Structural Standard

Every repo features a standard layout: src/, tests/ (Unit/Integration), docs/, a comprehensive README.md, .github/workflows/ci.yml, and an .editorconfig.

Governance

Every repository includes the full OSS governance suite: LICENSE, CONTRIBUTING.md, CODE_OF_CONDUCT.md, SECURITY.md, CHANGELOG.md, issue templates, PR template, and Dependabot.

Quality & Performance

  • Builds: TreatWarningsAsErrors = true across all .NET projects.
  • Coverage: 100% test coverage target for domain invariants.
  • CI/CD: Trunk-based development where main is always deployable. .NET repos share a reusable workflow for build & test, reducing CI duplication.
  • Performance: Sub-millisecond pagination, < 5ms FTS query times, and highly optimized Angular lazy-loading bundles (< 1.5 MB initial load).


๐Ÿงญ Recommended Reading Order

If you're exploring the ecosystem for the first time, I recommend this path to see how the pieces fit together:

  1. ๐Ÿ“– Clean Architecture Principles โ€” Understand the core layers and dependency rules.
  2. ๐Ÿ“ฆ dotnet-shared-kernel โ€” Review the foundational Result<T>, BaseEntity, and ValueObject types.
  3. ๐Ÿ“ฆ dapper-extensions-pg โ€” Explore the high-performance PostgreSQL extensions (UNNEST, Keyset).
  4. ๐Ÿ”ฌ postgresql-lab โ€” See the raw SQL benchmarks that validate the data access decisions.
  5. ๐Ÿ—๏ธ dotnet-enterprise-api โ€” Discover how the kernel and data access compose into a Clean Architecture API.
  6. ๐Ÿ—๏ธ angular-enterprise-app โ€” Check out the modern Angular 22 Signals implementation consuming the API.
  7. ๐Ÿ“š testing-patterns-dotnet โ€” Dive deep into the testing strategies keeping the code robust.


๐Ÿ”ฎ Current Initiatives & Roadmap

The ecosystem is built to scale to 20+ repositories without losing cohesion.

Current Phase: Consolidation

  • Publish dotnet-shared-kernel and dapper-extensions-pg to NuGet.org
  • Enhance integration test coverage in dotnet-enterprise-api with Testcontainers
  • Add CODE_OF_CONDUCT.md (Contributor Covenant v2.1) to all repositories
  • Implement reusable GitHub Actions workflows across .NET repositories
  • Add code coverage reporting to angular-enterprise-app CI
  • Deploy Stryker mutation reports to GitHub Pages (testing-patterns-dotnet)
  • Introduce E2E tests (Playwright) to angular-enterprise-app

Future Vision

  • ๐Ÿ“ก Observability: OpenTelemetry distributed tracing across the API and PostgreSQL.
  • ๐Ÿ“ฌ Event-Driven Architecture: Outbox pattern and message broker integration.
  • ๐Ÿข Multi-Tenant Patterns: Schema-per-tenant architecture relying on the shared kernel.
  • ๐Ÿšข Deployment Recipes: Progression from Docker Compose to full Kubernetes manifests.


๐Ÿค Contributing

While this ecosystem serves primarily as a personal reference architecture and engineering playground, constructive discussions, suggestions, and feedback are always welcome. Feel free to open an Issue in the relevant repository if you spot a bug or want to discuss a specific architectural pattern.



๐Ÿ“„ License

This ecosystem and its repositories are open-sourced software licensed under the MIT License. You are free to use these architectural patterns and reference implementations in your own projects.



Engineering Ecosystem Footer Graphic

engineering-handbook ยท Designed & built with care by Erickson Lopez.

Popular repositories Loading

  1. dotnet-concurrency dotnet-concurrency Public

    Zero-allocation, Native AOT Optimistic Concurrency Control (OCC) and conflict resolution framework for .NET. Eliminates lost updates and race conditions across Dapper, ASP.NET Core, and relational โ€ฆ

    C# 1

  2. guia-entrevistas-de-programacion guia-entrevistas-de-programacion Public

    Forked from DevCaress/guia-entrevistas-de-programacion

  3. CLINICAL-FRONT-YT CLINICAL-FRONT-YT Public

    Forked from AdrianMValencia/CLINICAL-FRONT-YT

    FRONTEND PARA SISTEMA DE LABORATORIO CLINICO

    TypeScript

  4. DapperUnitOfWork DapperUnitOfWork Public

    Forked from timschreiber/DapperUnitOfWork

    Unit of Work and Repository Example for Dapper

    C#

  5. ericksonlopezf ericksonlopezf Public

    Software Engineer | .NET 10 | Clean Architecture | DDD | PostgreSQL | Angular 21 | Building scalable and maintainable software solutions.

  6. angular-enterprise-app angular-enterprise-app Public

    Enterprise-grade SPA template built with Angular 22, Signals, and Tailwind CSS 4.

    TypeScript