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

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. This note will only be visible to you.
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 | Español (Latinoamérica)

RO Architect

Rodrigo de Oliveira

Arquiteto de Software · Sistemas Distribuídos · .NET · Cloud

Experiência prática com .NET, sistemas distribuídos, plataformas em nuvem, governança arquitetural e ferramentas open source.

Minha trajetória começou no desenvolvimento de software e, ao longo de mais de 20 anos, passou por integrações e modernização de sistemas corporativos até chegar à arquitetura. Hoje, procuro equilibrar as necessidades do negócio, as decisões técnicas e as condições reais de implementação e operação.

Aqui compartilho bibliotecas, ferramentas e laboratórios open source que desenvolvo para explorar como decisões de arquitetura se refletem em código, testes e automação.

Infográfico sobre arquitetura de software na prática: negócio, times, organização e evolução orientam decisões arquiteturais, apoiadas por código, testes, observabilidade e automação. Projetos em destaque: ADR Guard, Repo2C4, Complexity Analyzers, Dapper.FluentMap e POC Arquitetura.

Links profissionais


Projetos selecionados

Ferramentas, bibliotecas e laboratórios que conectam decisões de arquitetura à implementação e à operação.

Ferramenta de governança arquitetural

Ajuda equipes a manter registros de decisão consistentes e rastreáveis. A CLI em .NET cria, valida e indexa ADRs. As análises opcionais de impacto e desvios arquiteturais se baseiam em evidências verificáveis, sem substituir a avaliação humana. O estudo de caso detalha decisões e trade-offs.

Biblioteca .NET

Resolve mapeamentos entre objetos .NET e colunas do banco de dados quando as convenções do Dapper não bastam, sem adicionar atributos aos modelos. Sua evolução busca conciliar uma API fluente e extensível com a compatibilidade de aplicações existentes, preservando contratos públicos durante a modernização incremental. O estudo de caso discute os limites dessa abstração.

Ferramenta de documentação arquitetural

Reduz o risco de divergência entre código e diagramas ao transformar evidências verificáveis de repositórios .NET em documentação C4/LikeC4 que pode ser revisada. O processo separa observações de hipóteses e exige a aplicação explícita das mudanças. Combina análise estática, geração determinística e integração com agentes via MCP.

Laboratório de sistemas distribuídos

Explora decisões sobre consistência eventual, falhas e rastreabilidade por meio de cenários reproduzíveis com serviços distribuídos em .NET. Reúne DDD, integração assíncrona com Kafka e Outbox, testes e runbooks. As propostas que ainda não têm evidências permanecem identificadas como pendentes.

Biblioteca .NET para integração

Trata falhas, concorrência e duplicidade na entrega de webhooks de saída. IDs estáveis tornam o enfileiramento idempotente. Leases (posse temporária do trabalho) e novas tentativas dão suporte à entrega at-least-once, desde que a aplicação forneça armazenamento durável e o destinatário tolere duplicatas. O estudo de caso examina essas garantias e seus limites.

Ferramenta de análise estática

Identifica padrões de alto custo computacional e possíveis regressões de complexidade durante a análise do código. O analisador Roslyn estima Big-O quando há evidência suficiente, aplica métricas configuráveis na compilação e na IDE e retorna resultado indeterminado em vez de inferir além do que o código permite.

Outros trabalhos incluem o Repo Control Center, painel para acompanhar CI, versões, segurança e saúde dos repositórios. Veja também a lista completa de repositórios.


Contribuições open source

Algumas contribuições incorporadas a projetos de terceiros, voltadas a correções, manutenção e segurança:

  • Ocelot — PR #2420: corrigiu o mapeamento de timeouts do serviço de destino para HTTP 504 conforme a RFC 9110, preservando cancelamento do cliente e comportamento de QoS, com testes unitários e de aceitação.
  • MySqlConnector — PR #1675: removeu a detecção obsoleta do Azure MySQL Single Server, preservando o caminho do AWS RDS Proxy e simplificando a lógica de conexão.
  • OpenCNPJ — PR #75: centralizou downloads externos em um fluxo com timeouts, limites de tamanho, arquivos temporários e limpeza em falhas, acompanhado por testes e validação em CI.

O catálogo completo de contribuições open source reúne os demais pull requests e acompanha automaticamente o estado de cada um.

Governança como código

No repositório .github, reúno políticas e automações compartilháveis: padrões de contribuição e segurança, inventário de projetos .NET, verificação de segredos e distribuição controlada de skills para agentes. As mudanças passam por revisão em pull requests, e cada repositório mantém autonomia para adotar suas regras.

Como vejo a arquitetura

Minha forma de pensar arquitetura vem de mais de duas décadas atuando no desenvolvimento de software. Essa experiência me ensinou que não basta uma solução ser tecnicamente adequada. Ela também precisa fazer sentido para o negócio, para a organização e para as pessoas que vão construí-la e mantê-la.

Não vejo a arquitetura como algo definido isoladamente por um arquiteto e depois imposto às equipes. Por isso, procuro compreender o contexto da empresa, a maturidade dos times, as limitações existentes e os objetivos a alcançar. A partir dessa compreensão, busco construir decisões em conjunto, equilibrando as necessidades atuais e as possibilidades de evolução.

Para mim, o papel do arquiteto não é apenas desenhar soluções, mas ajudar as equipes a tomar boas decisões técnicas, compartilhar conhecimento e criar condições para que os sistemas possam evoluir de maneira sustentável.

Publicações e conteúdo técnico

Escrevo sobre arquitetura de software, DDD e desenvolvimento .NET, com foco nas decisões e nos problemas encontrados na prática.

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# 6

  2. complexity-analyzers complexity-analyzers Public

    Roslyn analyzer, .NET CLI and MCP server for C# complexity analysis. Estimates Big-O, detects costly patterns, measures code metrics, and compares snapshots to identify complexity regressions.

    C# 4

  3. Dapper-FluentMap Dapper-FluentMap Public

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

    C# 459 86

  4. Repo2C4 Repo2C4 Public

    Evidence-first .NET tool for inspecting local repositories and building traceable, reviewable C4/LikeC4 architecture documentation.

    C# 3

  5. adr-guard adr-guard Public

    Architecture Decision Records (ADRs) toolkit with .NET CLI, VS Code extension, GitHub Action, MCP server, and architecture governance tools.

    C# 14 1

  6. ReliableWebhooks ReliableWebhooks Public

    Reliable outbound webhook delivery for .NET 10 with retries, leasing, HMAC signing, observability, secure HTTP defaults, and pluggable durable persistence.

    C# 4