Skip to content
View rodri-oliveira-dev's full-sized avatar
Focusing
Focusing

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. Markdown is supported. 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

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.
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, integra regras estáveis ao CI/CD e oferece drafting assistido por IA sem retirar das pessoas a revisão e a aceitação arquitetural.
DotNetRepoInspector Usa metadados realmente avaliados pelo MSBuild como fonte de verdade para inventário, CI/CD e automação, evitando governança baseada em parsing frágil ou heurísticas.
.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.

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 a partir de metadados avaliados pelo MSBuild, secret scanning reutilizável e a distribuição de instruções e skills para agentes de desenvolvimento.

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.

Projeto Contribuição
Ocelot PR #2420: tratamento de timeout downstream como 504 Gateway Timeout, alinhado à RFC 9110. PR #2421: cobertura de regressão para roteamento de multipart/form-data, preservando body, boundary e metadados do arquivo.
CrispyWaffle PR #980: suporte a serialização YAML com YamlDotNet, integração com as abstrações existentes, testes e documentação.
Architecture Decision Record PR #115: localização completa para Português do Brasil, preservando estrutura, referências e identidade entre os conteúdos equivalentes.

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# 446 87