Skip to content

SOFTWARE ENGINEERING PORTFOLIO

Francisco Thiago

Software architect and senior engineer for high-availability, event-driven systems: from the C# code to the Kubernetes cluster it runs on.

I led the design of the global MES platform of the world's largest beer and logistics company, deployed in 300+ breweries and used by 10,000+ people, and I specialize in event sourcing, DDD, Kafka, and modernizing legacy ERP integrations. On my own time I build developer tools and run a home Kubernetes cluster. Those projects are public and verifiable, and this page is served from that cluster by a pipeline I wrote.

View GitHub Connect on LinkedIn

Track record

300+breweries running the global MES platform I led, with 10,000+ users

900,000+daily requests handled by a financial-transaction authorization system I designed and scaled

Days → mscustomer-notification latency after re-architecting the engine at a consultancy from the countryside of Paraná

200+Brazilian-built applications enabled by the architectural standards I defined

  • Global MES platform. At the world's largest beer and logistics company, led design and delivery of the platform deployed in 300+ breweries worldwide, supporting 10,000+ users and generating significant annual operational savings.
  • Architecture standards and Technology Hub. Defined the standards that enabled the creation and internationalization of 200+ Brazilian-built applications and the consolidation of a Brazil-based Technology Hub.
  • Fiscal and legal modernization. Modernized the software stack of that company's largest business unit for Brazilian technical regulations and the Tax Reform, integrating with legacy ERP systems, including COBOL and SAP.
  • Financial-transaction authorization at scale. Designed and scaled a system that authorizes financial transactions (withdrawals and credits) for 900,000+ daily requests with peak traffic, keeping availability high and latency low, and migrated its mission-critical engine from Go to C# while preserving stability and performance under load.
  • Notification engine. At a consultancy from the countryside of Paraná that grew the most in Brazil in recent years, re-architected a customer notification engine, cutting response times from days to milliseconds.
  • Leadership and teaching. President of the Technical Committee, leading company-wide certification programs, internal training, and engineering standards. Invited faculty at Unicesumar for undergraduate Software Engineering. Postgraduate Certificate in .NET Solution Architecture, Uniciv (2018).

What I deliver

For the business For the engineering team
Systems that stay available under load and turn waiting measured in days into milliseconds, with measurable operational savings. C# and Angular applications, REST APIs, Kafka messaging, and PostgreSQL (including pgvector).
Decisions written down as specs and standards, so the next team understands why a system is the way it is, not only what it does. Event sourcing, DDD, and hexagonal architecture; static analysis (Roslyn, TypeScript Compiler API); contracts enforced by JSON Schema.
Delivery treated as part of the product: every merge to main is tested, versioned, released, and deployed automatically. Kubernetes (k3s), Argo CD GitOps, Forgejo Actions CI/CD, Keycloak (OIDC), and secrets handling.

CODE QUALITY · C#

CodeReviewAnalyzer

A C# project focused on analyzing code reviews. It reflects a concern shared by mature teams: making quality and continuous learning part of the development workflow.

What it demonstrates: interest in sustainable engineering, automated feedback, and improving team practices, not only delivering features.

Explore the code →

DEVELOPER UTILITY · C# · REDIS

RedisToggler

A tool aimed at a recurring infrastructure task. Its intentionally small scope demonstrates attention to ergonomics, automation, and reducing repetitive work.

What it demonstrates: technical pragmatism: identifying a specific bottleneck and solving it with a focused tool.

Explore the code →

Where to start

If you have two minutes

Read the code-brain card: the screenshot shows the result, and the list under it shows the scope, from static analysis to the search UI. Then skim k3s-apps to see how what I build gets delivered and operated.

If you are evaluating technically

Open the roadmap in the .specs/ folder of code-ciir-api to see decisions recorded phase by phase. Then read the CIIR JSON Schema shared by the three analyzers, and the .forgejo/workflows of any repository for the CI/CD pipeline.

Trade-offs I can walk you through

  • Why one intermediate representation (CIIR) for every language instead of one analyzer per language, and what it costs.
  • How reranking and a relationship graph change the quality of answers about code.
  • Where authentication belongs in a chain of services, and how to keep it optional for local development.
  • How to make every merge releasable: Conventional Commits, automatic versioning, and GitOps.
  • How to choose boundaries between a frontend, an API, a database, and messaging services.
  • When an internal tool deserves to become a product, and how to measure its value.

Let’s talk

LinkedIn GitHub

VERSÃO EM PORTUGUÊS

Francisco Thiago

Arquiteto de software e engenheiro sênior de sistemas orientados a eventos e de alta disponibilidade: do código C# ao cluster Kubernetes em que ele roda.

Liderei o desenho da plataforma global de MES da maior empresa de cerveja e logística do planeta, implantada em mais de 300 cervejarias e usada por mais de 10.000 pessoas, e sou especialista em event sourcing, DDD, Kafka e na modernização de integrações com ERPs legados. No meu tempo livre construo ferramentas para desenvolvedores e mantenho um cluster Kubernetes em casa. Esses projetos são públicos e verificáveis, e esta página é servida por esse cluster, publicada por um pipeline que eu escrevi.

Histórico profissional

300+cervejarias rodando a plataforma global de MES que liderei, com mais de 10.000 usuários

900.000+requisições diárias atendidas por um sistema de autorização de movimentações financeiras que projetei e escalei

Dias → mslatência de notificação ao cliente após reestruturar o motor em uma consultoria do interior paranaense

200+aplicações brasileiras viabilizadas pelos padrões de arquitetura que defini

  • Plataforma global de MES. Na maior empresa de cerveja e logística do planeta, liderei o desenho e a entrega da plataforma implantada em mais de 300 cervejarias no mundo, com mais de 10.000 usuários e economia operacional anual significativa.
  • Padrões de arquitetura e Hub de Tecnologia. Defini os padrões que viabilizaram a criação e a internacionalização de mais de 200 aplicações construídas no Brasil e a consolidação de um Hub de Tecnologia brasileiro.
  • Modernização fiscal e legal. Modernizei a pilha de software da maior unidade de negócio dessa empresa para as normas técnicas brasileiras e a Reforma Tributária, integrando com ERPs legados, incluindo COBOL e SAP.
  • Autorização de movimentações financeiras em escala. Projetei e escalei um sistema que autoriza movimentações financeiras (saques e créditos) para mais de 900.000 requisições diárias, com picos, mantendo alta disponibilidade e baixa latência, e migrei seu motor crítico de Go para C# preservando estabilidade e desempenho sob carga.
  • Motor de notificações. Em uma consultoria do interior paranaense, a que mais cresceu no país nos últimos anos, reestruturei um motor de notificação de clientes, reduzindo o tempo de resposta de dias para milissegundos.
  • Liderança e ensino. Presidente do Comitê Técnico, conduzindo programas de certificação técnica, treinamentos internos e padrões de engenharia. Professor convidado na Unicesumar, em Engenharia de Software na graduação. Pós-graduação em Arquitetura de Soluções .NET, Uniciv (2018).

O que entrego

Para o negócio Para o time técnico
Sistemas que se mantêm disponíveis sob carga e transformam esperas de dias em milissegundos, com economia operacional mensurável. Aplicações C# e Angular, APIs REST, mensageria com Kafka e PostgreSQL (incluindo pgvector).
Decisões registradas em specs e padrões, para que o próximo time entenda por que o sistema é como é, e não só o que ele faz. Event sourcing, DDD e arquitetura hexagonal; análise estática (Roslyn, TypeScript Compiler API); contratos garantidos por JSON Schema.
Entrega tratada como parte do produto: todo merge na main é testado, versionado, publicado e implantado automaticamente. Kubernetes (k3s), GitOps com Argo CD, CI/CD com Forgejo Actions, Keycloak (OIDC) e gestão de segredos.

Projetos em destaque

Tela de busca do code-brain: uma pergunta sobre a lógica de retentativa de pagamentos, respondida com quatro resultados de código ordenados por relevância, de um projeto de demonstração.
Tela de busca do code-brain, executada localmente sobre um projeto fictício (billing-service). A interface é real; os resultados de código são dados de demonstração. A instância publicada exige login.

code-brain — Faça uma pergunta sobre uma base de código em linguagem natural e receba o código relevante, junto com as relações de chamada e dependência ao redor de cada resultado. É um sistema de seis repositórios que projetei e construí de ponta a ponta:

  • Analisadores para C#, Java e TypeScript/Angular leem o código estaticamente e geram uma única representação compartilhada, validada por schema (CIIR).
  • Indexador gera embeddings e grava documentos e relações no PostgreSQL com pgvector, recebendo os arquivos por upload em armazenamento de objetos.
  • API faz busca semântica com reranking, expande cada resultado por um grafo de relações de dois níveis e expõe ferramentas MCP para que assistentes de IA consultem o mesmo índice.
  • Aplicação web (Angular, signals, login com Keycloak) permite fazer perguntas, avaliar as respostas e consultar relatórios de feedback.

Demonstra: desenho de sistemas entre linguagens com um contrato estável e versionado entre os componentes; desenvolvimento orientado a specs; e um ciclo de feedback embutido para medir a qualidade das respostas. Aplicação web → · API → · Indexador → · C# · Java · TypeScript

BlogDoFT.Libs — Conjunto de 14 pacotes reutilizáveis para serviços .NET, publicados no NuGet (mais de 30.000 downloads somados), cobertos por 132 testes automatizados e versionados junto com o runtime do .NET (10.x). Uso-os nos meus próprios projetos, como o code-brain e a API de ingestão do Doc RAG. Destaques:

  • Source generator Roslyn para filtros do EF Core. Anote um DTO de filtro com [GeneratePredicate<TEntity>] e receba, em tempo de compilação, um Expression<Func<TEntity, bool>> fortemente tipado, com busca de texto adaptada ao provedor (ILIKE no PostgreSQL, EF.Functions.Like nos demais) e sem reflexão.
  • Result pattern e notificações de domínio para modelar falhas sem exceções e mapeá-las para respostas HTTP.
  • Provedor de tokens Keycloak (client credentials) com cache, mais um DelegatingHandler que autentica as chamadas de saída do HttpClient.
  • OpenTelemetry com traces, métricas e logs configurados em uma única chamada AddOtel, com exporters Console, Zipkin, OTLP ou Prometheus escolhidos por configuração.
  • Feature flags por meio de um cliente tipado do Flagr, utilitários Dapper para PostgreSQL (paginação, filtros e ordenação) e health checks de warm-up para probes de prontidão.

Demonstra: desenho de APIs para reuso, geração de código em tempo de compilação, empacotamento com automação de release e aplicação das mesmas convenções em vários serviços. Explorar o código → · Pacotes no NuGet →

Developer Toolbox executado localmente, mostrando uma árvore de tópicos e subscriptions preenchida com dados de demonstração.
Developer Toolbox executado localmente com tópicos e subscriptions de demonstração. A interface é real; os dados exibidos não são de produção.

Developer Toolbox — Ferramentas para o cotidiano de desenvolvimento, incluindo apoio ao Azure Service Bus Emulator. Demonstra uma solução ponta a ponta: backend, frontend, banco, mensageria, configuração e execução local. Explorar o código →

k3s-apps — Manifestos e aplicações gerenciados declarativamente. Esta página é entregue da mesma forma: um push na main roda os testes, calcula a próxima versão pelos Conventional Commits, publica um release com tag e notas geradas, constrói a imagem e atualiza o repositório que o Argo CD reconcilia. Demonstra ciclo de entrega, padronização de ambientes e responsabilidade operacional. Explorar o código →

CodeReviewAnalyzer — Projeto em C# para análise de revisões de código. Demonstra interesse por engenharia sustentável, automação de feedback e melhoria das práticas de equipe. Explorar o código →

RedisToggler — Ferramenta para uma tarefa frequente de infraestrutura. Demonstra pragmatismo técnico: identificar um gargalo e resolvê-lo com uma ferramenta focada. Explorar o código →

Por onde começar

Se você tem dois minutos, leia o code-brain: a imagem mostra o resultado e a lista logo abaixo mostra o escopo, da análise estática à interface de busca. Para avaliação técnica, abra o roadmap na pasta .specs/ do code-ciir-api, onde as decisões estão registradas fase a fase, depois o JSON Schema do CIIR compartilhado pelos três analisadores e o .forgejo/workflows de qualquer repositório para ver o pipeline de CI/CD.

Vamos conversar?

LinkedIn GitHub