Tech Lead & Software EngineerTech Lead & Engenheiro de Software
I build software, and lead the teams that ship it.Eu construo software e lidero times que colocam ele em produção.
Years inside large multinational companies, shipping in global environments where security and compliance are requirements rather than afterthoughts. Today I lead engineering teams — and take other people's software apart on the side, which is where the exploit writeups come from.Anos dentro de grandes multinacionais, entregando em ambientes globais onde segurança e compliance são requisitos, não algo que se resolve depois. Hoje lidero times de engenharia — e desmonto o software dos outros nas horas vagas, que é de onde vêm os writeups de exploit.

About
I started breaking things at fourteen — web hacking basics, mostly — and that curiosity pulled me straight into programming. By fifteen I was working professionally as a web developer, and I never left.
Since then I have spent years inside large multinational companies, shipping software in global environments with strict security and compliance requirements. Today I work as a tech lead: I set technical direction, own delivery end to end, and spend as much time on roadmaps and people as I do on code.
The security research is the same instinct that started all of this, pointed at other people's code. It makes me a better engineer — I read a codebase the way the people who wrote it do, then look for where it fails. It is a sharp lens to bring to a team. It just isn't the job.
Sobre
Comecei a quebrar coisas aos quatorze — o básico de web hacking, na maior parte — e essa curiosidade me puxou direto para a programação. Aos quinze eu já trabalhava profissionalmente como desenvolvedor web, e nunca mais parei.
De lá para cá, passei anos dentro de grandes multinacionais, entregando software em ambientes globais com requisitos rígidos de segurança e compliance. Hoje trabalho como tech lead: defino a direção técnica, respondo pela entrega de ponta a ponta e gasto tanto tempo com roadmap e pessoas quanto com código.
A pesquisa de segurança é o mesmo instinto que começou tudo isso, apontado para o código dos outros. Ela me faz um engenheiro melhor — leio uma base de código do jeito que quem a escreveu lê, e depois procuro onde ela falha. É uma lente afiada para trazer a um time. Só não é o trabalho.
What I build with
Stack
Languages
- TypeScript / JavaScript — My professional languages since day one — product code, tooling, and everything in between.
- Python — Scripting, automation, and tooling, from production services to research workflows.
- PHP — Production web backends, from legacy monoliths to modern stacks.
- Java — Learned it alongside PHP and kept it for Spring Boot side projects, never shipped to production. Enough to read it, which is where the Log4Shell and DataEase writeups came from.
Backend
- Node.js / NestJS — Designing and shipping production services and APIs — TypeScript on both sides of the stack.
- Laravel — PHP applications in production, and the framework I know well enough to know where it bends.
Frontend
- React — Years of production apps at scale; now leading the teams that build them.
- Next.js — App Router, server components, and the rendering trade-offs that come with them.
- Vue — Vue 3 on a few projects — useful when the team is not on React.
- Micro frontends — Splitting React apps into independently deployed pieces, and living with the routing and shared-state problems that come with it.
Infrastructure
- Docker & Kubernetes — Containerised production services, from local development to global deployments.
- CI/CD — Building and maintaining the pipelines that make releases boring.
- Cloud — AWS, GCP, and Azure — designing and running production services on all three.
AI
- LLMs in the loop — Putting models where they actually pay off: code analysis, triage, and internal tooling.
- Claude Code — Agentic workflows that map surface area, generate hypotheses, and validate findings end to end.
Security
- AppSec — SAST and DAST pipelines, code review, threat modelling, and secure design — shaped by years shipping under global compliance requirements.
- OWASP Top 10 — The working checklist for API security and secure design — applied while the code is written, not after the pentest.
- Vulnerability research — Finding and reporting bugs across languages and stacks. The target picks the toolchain, not the other way around.
- Pentesting — Web and application-focused offensive testing, from recon to reproducible, reported findings.
Com o que eu construo
Stack
Linguagens
- TypeScript / JavaScript — Minhas linguagens profissionais desde o primeiro dia — código de produto, tooling e tudo que vem no meio.
- Python — Scripting, automação e ferramentas, de serviços em produção a fluxos de pesquisa.
- PHP — Backends web em produção, de monólitos legados a stacks modernas.
- Java — Aprendi junto com PHP e mantive para projetos paralelos em Spring Boot, nunca levei para produção. O suficiente para ler, que foi de onde saíram os writeups do Log4Shell e do DataEase.
Backend
- Node.js / NestJS — Desenhando e entregando serviços e APIs em produção — TypeScript dos dois lados da stack.
- Laravel — Aplicações PHP em produção, e o framework que conheço bem o bastante para saber onde ele entorta.
Frontend
- React — Anos de aplicações em produção em escala; hoje liderando os times que as constroem.
- Next.js — App Router, server components e os trade-offs de renderização que vêm junto.
- Vue — Vue 3 em alguns projetos — útil quando o time não está em React.
- Micro frontends — Quebrando aplicações React em pedaços com deploy independente, e convivendo com os problemas de roteamento e estado compartilhado que isso traz.
Infraestrutura
- Docker & Kubernetes — Serviços em produção containerizados, do ambiente local a deploys globais.
- CI/CD — Construindo e mantendo as pipelines que deixam release chato.
- Cloud — AWS, GCP e Azure — desenhando e operando serviços em produção nas três.
IA
- LLMs in the loop — Colocando modelos onde eles realmente pagam: análise de código, triagem e ferramentas internas.
- Claude Code — Fluxos agênticos que mapeiam superfície de ataque, geram hipóteses e validam achados de ponta a ponta.
Segurança
- AppSec — Pipelines de SAST e DAST, code review, threat modelling e design seguro — moldados por anos entregando sob requisitos globais de compliance.
- OWASP Top 10 — O checklist de trabalho para segurança de API e design seguro — aplicado enquanto o código é escrito, não depois do pentest.
- Vulnerability research — Encontrando e reportando bugs em várias linguagens e stacks. O alvo escolhe o toolchain, não o contrário.
- Pentesting — Testes ofensivos focados em web e aplicações, do recon a achados reproduzíveis e reportados.
The half that doesn't compile
Profile
- Technical leadershipLeading global engineering teams: setting direction, unblocking people, and keeping delivery predictable when the scope is not.
- OwnershipEnd-to-end responsibility for what ships — from the decision that caused it to the incident it wakes me up for.
- Roadmap discoveryTurning vague business intent into a scoped, sequenced roadmap a team can actually build against.
- Stakeholder managementTranslating between engineering and the people funding it, and turning roadmaps into value delivered.
- Career planning & mentoringGrowth plans, honest feedback, and the unglamorous work of making engineers better at their job.
- Hiring & team buildingInterviewing, calibrating, and assembling teams that keep working after I leave the room.
- Architecture decisionsPicking the trade-off a team can live with for the next three years — and writing down why, so the next person knows.
A metade que não compila
Perfil
- Liderança técnicaLiderando times globais de engenharia: definindo direção, destravando pessoas e mantendo a entrega previsível quando o escopo não é.
- OwnershipResponsabilidade de ponta a ponta pelo que vai para produção — da decisão que causou ao incidente que me acorda de madrugada.
- Discovery de roadmapTransformando intenção de negócio vaga em um roadmap escopado e sequenciado que um time consegue de fato construir.
- Gestão de stakeholdersTraduzindo entre a engenharia e quem financia a engenharia, e transformando roadmap em valor entregue.
- Plano de carreira & mentoriaPlanos de crescimento, feedback honesto e o trabalho sem glamour de fazer engenheiros melhores no que fazem.
- Contratação & formação de timeEntrevistando, calibrando e montando times que continuam funcionando depois que eu saio da sala.
- Decisões de arquiteturaEscolhendo o trade-off com que um time consegue conviver pelos próximos três anos — e registrando o porquê, para a próxima pessoa saber.
Experience
Jan 2026 — Present
Tech Lead · AB InBev
Legal & Compliance — a policy-approvals platform used across regions, with 6 engineers.
- — Own the platform end to end: architecture, delivery, and the technical direction the team builds against.
- — Sit between Legal, Compliance and Marketing and engineering, turning regulatory requirements into something a team can actually build.
- — Own secure delivery across the SDLC: threat modelling, secure code review, and vulnerability management on the way to production rather than after it.
- — Set how the team uses AI in production work: what context a model gets, what gets verified, and what never skips review.
Jun 2025 — Jan 2026
Senior Software Engineer · AB InBev
The same platform, before I led it.
- — Built the core of the product: NestJS services on Azure and Kubernetes, with a Next.js front end on top.
- — Worked with the Tech Lead on system design, and laid the architectural foundations the global rollout was later built on.
Feb 2025 — May 2025
Senior Software Engineer · Petrus Software
Ecopag, a crypto trading platform. Greenfield, small senior team.
- — Owned the payment APIs: transaction flows and the integrations behind buying and selling crypto assets.
- — Defined the backend architecture and AWS infrastructure from an empty repository, with NestJS, TypeORM, PostgreSQL and Stripe.
Jan 2022 — Jan 2025
Senior Software Engineer · Smiles
Airline loyalty platform. React and Next.js at consumer scale.
- — Migrated a legacy React 12 codebase to React 18 with Redux, and took it past 95% test coverage.
- — Split the front end into micro frontends so teams could ship and deploy without waiting on each other.
- — Wrote the internal standards and documentation the other teams built against.
Aug 2021 — Dec 2021
Mid Software Engineer · DevSquad
US agency, international clients. Mainly ClearChecks, one of the largest.
- — Shipped production features in Laravel, Vue and MySQL for distributed teams across time zones.
- — Worked in a QA-driven process where coverage was a gate on the release, not a number in a report.
Jan 2020 — Dec 2020
Fullstack Developer · NexaINC
React and Laravel. APIs, servers, and everything in between.
- — Built and documented the back-end APIs, and kept the servers they ran on available.
- — First role where I owned things end to end instead of picking up tickets.
Jan 2016 — Jan 2020
Co-founder, Backend & Architecture · Rubi Payments
A payments and digital-product platform that grew past 1,000 paying customers a month.
- — Built the payment system from scratch: transaction flows, access control, product hosting and customer management.
- — Owned the backend architecture and the scalability decisions, on Laravel, MySQL, Redis and AWS.
- — Freelanced alongside it, building conversion-focused web work for direct-marketing clients.
- — Where I learned to treat software as business infrastructure rather than just code.
Experiência
jan 2026 — atual
Tech Lead · AB InBev
Legal & Compliance — uma plataforma de aprovação de políticas usada em várias regiões, com 6 engenheiros.
- — Respondo pela plataforma de ponta a ponta: arquitetura, entrega e a direção técnica que o time segue.
- — Fico entre Jurídico, Compliance e Marketing e a engenharia, traduzindo requisito regulatório em algo que um time consegue construir.
- — Respondo pela entrega segura ao longo do SDLC: threat modelling, code review de segurança e gestão de vulnerabilidades no caminho para produção, não depois dela.
- — Defino como o time usa IA no trabalho de produção: que contexto o modelo recebe, o que é verificado e o que nunca pula revisão.
jun 2025 — jan 2026
Engenheiro de Software Sênior · AB InBev
A mesma plataforma, antes de eu liderá-la.
- — Construí o núcleo do produto: serviços NestJS em Azure e Kubernetes, com um front-end Next.js por cima.
- — Trabalhei com o Tech Lead no design de sistema, e deixei as fundações de arquitetura sobre as quais o rollout global foi construído depois.
fev 2025 — mai 2025
Engenheiro de Software Sênior · Petrus Software
Ecopag, uma plataforma de trading de cripto. Greenfield, time pequeno e sênior.
- — Respondi pelas APIs de pagamento: fluxos de transação e as integrações por trás da compra e venda de criptoativos.
- — Defini a arquitetura de backend e a infraestrutura AWS a partir de um repositório vazio, com NestJS, TypeORM, PostgreSQL e Stripe.
jan 2022 — jan 2025
Engenheiro de Software Sênior · Smiles
Plataforma de fidelidade de companhia aérea. React e Next.js em escala de consumo.
- — Migrei uma base legada de React 12 para React 18 com Redux, e levei a cobertura de testes para mais de 95%.
- — Quebrei o front-end em micro frontends para os times entregarem e fazerem deploy sem esperar uns pelos outros.
- — Escrevi os padrões e a documentação internos que os outros times passaram a seguir.
ago 2021 — dez 2021
Engenheiro de Software Pleno · DevSquad
Agência americana, clientes internacionais. Principalmente ClearChecks, um dos maiores.
- — Entreguei funcionalidades em produção com Laravel, Vue e MySQL para times distribuídos em fusos diferentes.
- — Trabalhei em um processo guiado por QA, onde cobertura era um portão para o release, não um número em relatório.
jan 2020 — dez 2020
Desenvolvedor Fullstack · NexaINC
React e Laravel. APIs, servidores e tudo que vem no meio.
- — Construí e documentei as APIs de back-end, e mantive de pé os servidores em que elas rodavam.
- — Primeira posição em que respondi pelas coisas de ponta a ponta, em vez de só pegar ticket.
jan 2016 — jan 2020
Co-fundador, Backend & Arquitetura · Rubi Payments
Uma plataforma de pagamentos e produtos digitais que passou de 1.000 clientes pagantes por mês.
- — Construí o sistema de pagamentos do zero: fluxos de transação, controle de acesso, hospedagem de produtos e gestão de clientes.
- — Respondi pela arquitetura de backend e pelas decisões de escalabilidade, em Laravel, MySQL, Redis e AWS.
- — Fiz freelas em paralelo, construindo trabalho web focado em conversão para clientes de marketing direto.
- — Onde aprendi a tratar software como infraestrutura de negócio, e não só como código.
Writing
- Exploit labs
- 13 published CVEs rebuilt as reproducible labs, each with a working exploit on GitHub.
- Own research
- 1 CVE of my own, credited as an independent finder on the advisory.
- exploitCVE-2026-33634
CVE-2026-33634: LiteLLM api_base SSRF — credential-theft PoC lab
A dockerized lab that chains a LiteLLM-style gateway's unvalidated api_base parameter (SSRF) with a trojanized telemetry dependency, walking an attacker from a single request to full provider-key and cloud-credential exfiltration.
cvepocssrfsupply-chainlitellm - exploitCVE-2026-87902
CVE-2026-87902: WordPress double-encoded path traversal — LFI to RCE
A dockerized lab for CVE-2026-87902 — WordPress Core resolves the public pagename parameter, re-decodes it after validation, and lets a double-encoded ../ traverse the filesystem, chaining into RCE through pearcmd.php.
cvewordpresspath-traversallfircepoc - exploitCVE-2024-7804
CVE-2024-7804: PyTorch distributed RPC pickle RCE — the CVE that got withdrawn
A dockerized lab for the PyTorch torch.distributed.rpc deserialization bug — a malicious peer joins the world, ships a pickle payload, and runs code as root on the victim node. Then the advisory was withdrawn as known functionality.
cvercepytorchdeserializationpoc - exploitCVE-2026-42559
CVE-2026-42559: DNS rebinding into a local MCP server — rmcp Host header PoC
The Rust MCP SDK's Streamable HTTP transport never looked at the Host header, so any web page could DNS-rebind to a developer's loopback MCP server and call its tools. A two-container lab runs the same server against rmcp 1.3.0 and 1.4.0 to show the fix.
cvercemcpdns-rebindingpoc - exploitCVE-2026-22778
CVE-2026-22778: vLLM unauthenticated RCE — heap leak → JPEG2000 overflow
A pre-auth memory-corruption chain in vLLM's multimodal ingestion: a Pillow error message leaks a heap address to defeat ASLR, then a crafted JPEG2000 cdef box overflows a subsampled plane in the bundled FFmpeg decoder.
cvercevllmmemory-corruptionpoc
Artigos
- Labs de exploit
- 13 CVEs publicadas reconstruídas como labs reproduzíveis, cada uma com exploit funcional no GitHub.
- Pesquisa própria
- 1 CVE minha, creditada como pesquisador independente no advisory.
- exploitCVE-2026-33634
CVE-2026-33634: SSRF via api_base no LiteLLM — lab de roubo de credenciais
Um laboratório dockerizado que encadeia o parâmetro api_base não validado de um gateway estilo LiteLLM (SSRF) com uma dependência de telemetria trojanizada, levando o atacante de uma única requisição à exfiltração completa de chaves de provedores e credenciais de nuvem.
cvepocssrfsupply-chainlitellm - exploitCVE-2026-87902
CVE-2026-87902: path traversal com dupla codificação no WordPress — de LFI a RCE
Um lab dockerizado da CVE-2026-87902 — o WordPress Core resolve o parâmetro público pagename, o decodifica de novo depois de validar, e deixa um ../ com dupla codificação percorrer o sistema de arquivos, encadeando até RCE via pearcmd.php.
cvewordpresspath-traversallfircepoc - exploitCVE-2024-7804
CVE-2024-7804: RCE via pickle no RPC distribuído do PyTorch — a CVE que foi retirada
Um lab dockerizado para o bug de desserialização do torch.distributed.rpc — um peer malicioso entra no world, manda um payload pickle e executa código como root no nó vítima. Depois disso, o advisory foi retirado como funcionalidade conhecida.
cvercepytorchdeserializationpoc - exploitCVE-2026-42559
CVE-2026-42559: DNS rebinding até um servidor MCP local — PoC do Host header no rmcp
O transporte Streamable HTTP do SDK Rust de MCP nunca olhava o header Host, então qualquer página web podia fazer DNS rebinding até o servidor MCP em loopback de um desenvolvedor e chamar as ferramentas dele. Um lab de dois contêineres roda o mesmo servidor contra o rmcp 1.3.0 e o 1.4.0 para mostrar a correção.
cvercemcpdns-rebindingpoc - exploitCVE-2026-22778
CVE-2026-22778: RCE não autenticada no vLLM — vazamento de heap → overflow no JPEG2000
Uma cadeia de corrupção de memória pré-autenticação na ingestão multimodal do vLLM: uma mensagem de erro do Pillow vaza um endereço de heap para derrotar o ASLR, e então uma caixa cdef de JPEG2000 forjada estoura um plano subamostrado no decodificador FFmpeg embutido.
cvercevllmmemory-corruptionpoc
Get in touch
Open to conversations about engineering leadership roles, and always happy to talk about a vulnerability report.