Technical Consulting · Software Architecture

Software architecture for systems that need to evolve.

I help teams review software architectures, modernize .NET applications, and design integrations, with business and operational needs in mind.

When a system needs to evolve, the challenge is not always choosing the right technology. It is deciding what to change, what to keep, and which risks are worth taking. Those are the questions I start with when working with a team.

Rodrigo de Oliveira · Senior Software Architect · 20+ years in software engineering.

Areas of expertise

How I can help your team.

Whether your team needs an architecture review, a path to modernize an existing application, or help designing an integration, I can contribute to a focused assessment or a phase of a larger project. Depending on the agreed scope, the work may include prioritized recommendations and documented decisions.

01 / Architecture

Architecture reviews and evolution

I review dependencies, component boundaries, and quality attributes to identify risks and compare alternatives before major changes.

02 / Modernization

.NET application modernization

I assess existing applications and dependencies to identify practical paths for incremental modernization, taking maintenance, operations, and business needs into account.

03 / Integration

APIs and distributed systems

I help design and review APIs, integrations, and asynchronous workflows, with attention to contracts, failure handling, resilience, and observability.

04 / Engineering

Technical decision support

I work with teams to assess patterns, organize code, and document architectural decisions, connecting technical design with implementation.

Approach

Understand the system before proposing changes.

A technical decision can solve one problem while creating another. That is why I look at the current system and project constraints before comparing possible approaches.

01 / Context

Understand the context

I identify goals, key dependencies, business constraints, and risks in the existing system.

02 / Alternatives

Make trade-offs explicit

I compare approaches and discuss their impact on maintenance, operations, costs, and the system's ability to evolve.

03 / Evolution

Define next steps

I organize recommendations and next steps, with priorities and evaluation criteria suited to the agreed scope.

Professional background

Experience with independent projects.

Alongside my work in engineering teams, I have contributed to independent projects involving the development, maintenance, and evolution of enterprise applications. These experiences broadened my understanding of business processes and different corporate environments.

  • Bosch América Latina

    I contributed to building and improving systems supporting management and operations in a corporate environment.

  • Nestlé Brasil

    I maintained and enhanced management systems supporting internal business processes.

  • Novo Nordisk

    I developed and maintained management-support applications, broadening my experience across business environments.

Previous professional engagements, described without internal details or confidential information.

Public work

Public projects that show how I approach technical work.

In these case studies, I document technical decisions, alternatives, and limitations through projects that anyone can examine.

ADR Guard

Architectural decisions, verifiable rules, and detection of drift between the intended design and implementation.

Read case study

ReliableWebhooks

Webhook delivery, concurrency, failure recovery, and reliability decisions in distributed systems.

Read case study

dotnet-observability-lab

Messaging, idempotency, asynchronous processing, and observability in a .NET lab.

Read case study

Dapper.FluentMap

Open-source library maintenance, compatibility, testing, and release evolution in the .NET ecosystem.

Read case study

These case studies are independent projects, not deliverables from the client engagements mentioned above.

Professional contact

Working through an architecture or modernization challenge?

If you are facing a difficult architecture decision, planning to modernize an application, or reviewing an integration, we can talk it through. Share a brief outline of the situation and the support you are looking for so we can see whether working together makes sense.