Skip to content
View rodri-oliveira-dev's full-sized avatar
💻
Designing systems, writing code
💻
Designing systems, writing code

Sponsoring

@dotMorten
@nager

Block or report rodri-oliveira-dev

Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
rodri-oliveira-dev/README.md

Português | English

RO Architect

Rodrigo de Oliveira

Arquiteto de Software | Sistemas Distribuídos | .NET | Cloud | DDD | Governança como Código

Sou arquiteto de software com mais de 20 anos de experiência construindo, modernizando e evoluindo sistemas corporativos.

Atuo na interseção entre negócio, arquitetura e engenharia, transformando necessidades, atributos de qualidade e restrições operacionais em decisões técnicas que os times conseguem implementar, observar, operar e evoluir.

Meu foco é transformar decisões arquiteturais em código, contratos, guardrails e automação, mantendo a arquitetura próxima o suficiente da engenharia para que suas premissas possam ser validadas na prática.

Portfólio profissional · LinkedIn · Café com código · NuGet


Impacto selecionado

Além do trabalho open source, minha trajetória inclui resultados mensuráveis em sistemas corporativos: 30% de redução no tempo de resposta de um fluxo crítico .NET/HANA, 40% de redução no tempo médio de detecção e resposta a incidentes e novas integrações realizadas em aproximadamente um terço do tempo após o redesenho de APIs e fronteiras.

Os resultados quantitativos são de projetos realizados em 2020–2021. Ver contexto, decisões e resultados no portfólio →


Arquitetura na prática

Nos projetos open source, parte do meu raciocínio técnico fica visível no código. O que me interessa não é a tecnologia isolada, mas o problema, as restrições, a decisão tomada e como essa decisão pode ser verificada na implementação, na infraestrutura ou na automação.

Projeto Problema, decisão e evidência
POC Arquitetura Explora consistência e rastreabilidade entre serviços distribuídos com DDD, bounded contexts, Kafka, Outbox/Inbox, idempotência, sagas, OpenTelemetry, ADRs e runbooks. Os trade-offs e modos de falha fazem parte do desenho.
dotnet-observability-lab Laboratório executável com .NET 10, Aspire e OpenTelemetry para processamento assíncrono confiável, Outbox/Inbox, at-least-once delivery e idempotência. ADRs e LikeC4 formam uma arquitetura versionada, validada no CI e publicada como documentação interativa.
Repo2C4 Trata a divergência entre código e diagramas como um problema de evidência e revisão: transforma evidências verificáveis de repositórios .NET em documentação C4/LikeC4 revisável, com C1/C2, C3 seletivo, CLI e MCP local via stdio. Na evolução atual, adiciona um Agent baseado em Microsoft Agent Framework para orquestrar análise evidence-first, validação e correção limitada, mantendo aprovação humana antes de qualquer escrita.
ReliableWebhooks Trata entrega de webhooks como um problema de confiabilidade: at-least-once delivery, leases, concorrência limitada, retries determinísticos, HMAC-SHA256, observabilidade e políticas de destino são responsabilidades explícitas e testáveis.
Terraform GCP .NET Blueprint Reúne uma baseline reproduzível para workloads .NET no Google Cloud com Terraform, Cloud Run, Jobs, Pub/Sub, DLQ, Redis, Secret Manager, VPC, IAM, Workload Identity Federation, CI e observabilidade.
ADR Guard Torna ADRs verificáveis no fluxo de engenharia: valida e indexa decisões de forma determinística por CLI, containers e GitHub Action, e oferece drafting assistido por IA sem retirar das pessoas a revisão e a aceitação arquitetural.
DotNetRepoInspector Usa metadados avaliados pelo MSBuild como fonte de verdade para inventário e governança, expondo o mesmo contrato determinístico por CLI/.NET Tool, GitHub Action e servidor MCP local read-only. Está evoluindo para descobrir integrações externas — HTTP, mensageria multi-cloud, bancos, cache e storage — como fatos estruturados reutilizáveis por outras ferramentas.
.NET Library Template Consolida práticas recorrentes de build, testes, segurança, empacotamento e release em um golden path reutilizável, com package validation, NuGet Audit, CodeQL, Trusted Publishing via OIDC e controles de software supply chain.
ComplexityAnalysis.Analyzers Leva análise de complexidade para perto do desenvolvimento com analyzers Roslyn para complexidade algorítmica, ciclomática, cognitiva e estrutural, usando uma abordagem conservadora quando a inferência não é segura.

DotNetRepoInspector identifica fatos técnicos do repositório; Repo2C4 usa evidências verificáveis para interpretá-los arquiteturalmente e produzir documentação C4 revisável.

Ver todos os repositórios →


Governança como código

Arquitetura sustentável também depende de transformar padrões recorrentes em feedback e automação, em vez de depender apenas de documentação ou processo manual.

O repositório .github funciona como uma camada central de governança e automação para os projetos que mantenho. Ele concentra padrões de contribuição e segurança, manutenção cross-repository, inventário de projetos .NET, secret scanning reutilizável e um registro versionado de governança para agentes, com sincronização de skills upstream e distribuição controlada por Pull Request.

As automações seguem menor privilégio, mudanças via Pull Request, defaults seguros e autonomia local dos repositórios. Operações de escrita passam por revisão; fluxos somente leitura não recebem permissões de mutação.

A ideia é simples: quando uma regra pode gerar feedback útil automaticamente, prefiro um guardrail a mais uma etapa burocrática.


Manutenção open source

Também mantenho projetos que já possuem histórico, usuários e contratos públicos estabelecidos.

Dapper.FluentMap — sou o mantenedor atual da biblioteca de mapeamento fluente para Dapper, criada originalmente por Henk Mollema. Estou conduzindo sua retomada e modernização, preservando compatibilidade com o ecossistema existente enquanto evoluo runtime, tooling, CI/CD, qualidade, segurança e estratégia de distribuição.

Esse trabalho exige um tipo diferente de decisão: evoluir o projeto sem ignorar o contrato construído ao longo dos anos com quem já depende dele.


Contribuições open source

Contribuir em bases de código que não controlo também expõe uma parte importante da engenharia: entender decisões existentes, respeitar contratos e convenções, discutir trade-offs e entregar mudanças que façam sentido dentro daquele ecossistema.

Contribuições em projetos de terceiros selecionados, com links para o trabalho proposto e integrado.

PRs públicos de minha autoria nos 4 projetos externos selecionados: 10 no total, 4 integrados, 6 abertos e 0 fechados sem integração. Projetos com PRs integrados: 2.

Projeto externo Colaboração e PRs de referência
Ocelot PR #2420 · integrado: Tratamento de timeout downstream como 504 Gateway Timeout, alinhado à RFC 9110.

PR #2421 · aberto: Proposta de cobertura de regressão para roteamento de multipart/form-data, preservando body, boundary e metadados do arquivo.
CrispyWaffle PR #980 · aberto: Proposta de serialização YAML com YamlDotNet, integrada às abstrações existentes, com testes e documentação.
Architecture Decision Record PR #115 · aberto: Proposta de localização completa para Português do Brasil, preservando estrutura, referências e identidade entre conteúdos equivalentes.
LikeC4 PR #3179 · integrado: Introdução do README em pt-BR, suporte à internacionalização e tutorial.

PR #3236 · integrado: Tradução de Guides e dos fundamentos da DSL.

PR #3262 · integrado: Localização da documentação de Views da DSL, preservando sintaxe, exemplos e terminologia arquitetural.

A seleção e as descrições são editoriais. Os números incluem todos os PRs públicos de minha autoria nesses projetos, mesmo os não destacados na tabela. Atualização do painel: 23/09/2026.

Acompanhar contribuições e trabalho em andamento →
Uso este GitHub Project para acompanhar issues, contribuições e iniciativas open source em que estou atuando, avaliando ou em que já atuei.


Como penso arquitetura

Alguns princípios orientam meu trabalho:

  • Começar pelo problema, não pelo padrão.
  • Tratar restrições como parte do design.
  • Tornar decisões e trade-offs explícitos.
  • Projetar para falhas e operação desde o início.
  • Preferir guardrails a burocracia.
  • Manter arquitetura próxima o suficiente do código para validar decisões.
  • Automatizar padrões quando isso gera feedback útil para os times.

Esse é também o fio condutor do meu portfólio profissional, onde apresento minha atuação em arquitetura, sistemas distribuídos, cloud, DDD e engenharia de software de forma mais completa.


Conteúdo técnico

Escrevo sobre arquitetura de software, Domain-Driven Design, sistemas distribuídos, backend, qualidade, cloud, governança técnica e decisões de engenharia.

  • Café com código — newsletter sobre arquitetura de software, Domain-Driven Design, sistemas distribuídos, backend, qualidade e os trade-offs por trás das decisões técnicas;
  • NuGet — bibliotecas, ferramentas e templates .NET publicados;
  • Portfólio — visão consolidada da minha atuação profissional;
  • LinkedIn — trajetória, experiência e presença profissional.

Atividade no GitHub

Estatísticas do GitHub de Rodrigo de Oliveira

Pinned Loading

  1. poc-arquitetura poc-arquitetura Public

    .NET architecture PoC for distributed services with CQRS, Kafka, PostgreSQL, Outbox, DLQ, observability and CI quality gates.

    C# 4

  2. brazilian-primitives brazilian-primitives Public

    Objetos de valor .NET fortemente tipados e imutáveis para validar e normalizar identificadores brasileiros, como CPF, CNPJ, CEP, chaves Pix, telefones e documentos de veículos.

    C# 3

  3. complexity-analyzers complexity-analyzers Public

    Roslyn analyzer for C# that estimates algorithmic complexity and detects costly patterns in loops, LINQ, interprocedural calls, and recursion.

    C# 1

  4. dotnet-library-template dotnet-library-template Public template

    Opinionated .NET library template with testing, CI, packaging, code quality and repository governance.

    C# 2

  5. DotNetRepoInspector DotNetRepoInspector Public

    Inspect and classify .NET projects, extracting architecture metadata for CI/CD, automation, and technical governance.

    C# 1

  6. Dapper-FluentMap Dapper-FluentMap Public

    Fluent mapping for Dapper, with conventions, immutable object materialization, analyzers, source generators, DI integration, and Dommel support.

    C# 450 87