// desenvolvedor full stack

Rio de Janeiro, Brasil
22°54′S 43°10′W

LucasDantas.

Full Stack Developer. Construo sistemas que sobrevivem à produção.

anos de experiência4+
projetos entregues40+
idiomas4
role para começar

01 — manifesto

Software que a operação não pode parar.

APIs.

Motores de fluxo.

Agentes de IA.

Migração de legado.

Automação.

Infraestrutura.

Do problema à produção.

4+ anos entre sistemas de gestão hospitalar, motores de aprovação, agentes de IA e migração de legado. Escrevo teste onde o erro custa caro, documento a decisão junto com o código e prefiro extrair o que se repete a duplicá-lo.

02 — stack & competências

Ferramentas que uso em produção, do back ao front, da infra à IA.

Back-end

PHPLaravelCodeIgniterNode.jsPythonFastAPIJavaSpring BootREST APIs

Front-end

ReactNext.jsTypeScriptTailwind CSSBootstrapjQuery

Banco de dados

PostgreSQLSQL ServerMySQLMongoDBSupabase

DevOps & Infra

DockerLinuxNginxAWS S3GitGitHubCI/CDPM2

Automação & IA

n8nMCPLLM IntegrationsChatbotsGemini APIWordPress

Arquitetura & Práticas

System DesignClean ArchitectureSOLIDDesign PatternsFilas & MensageriaClean CodeTestes (unit/int/regressão)Scrum & Kanban

// como eu trabalho

01

Extrair antes de duplicar

Na segunda vez que a mesma lógica aparece, ela vira serviço — não um segundo copy-paste. Foi assim que um motor de aprovações preso a um domínio virou a infraestrutura de quatro áreas.

02

Teste onde o erro custa caro

Cálculo de verba rescisória e autorização de chatbot não vão para produção no “testei na mão”: regressão contra dados reais, testes de injeção e de vazamento entre sessões, end-to-end nas telas críticas.

03

Custo sob controle

Otimização que aparece na fatura, não no benchmark: consumo de tokens de IA cortado em cerca de 90% por fluxo de conversa, e uma consulta em linguagem natural que caiu de sete chamadas para duas.

04

Decisão documentada

Escrevo o porquê junto com o código — incluindo o que ficou fora do escopo e o que ainda não está resolvido. Limitação registrada custa menos que limitação descoberta em produção.

03 — experiência

Clique em cada cargo para expandir os detalhes.

−90%

tokens por fluxo de conversa

31

telas migradas do legado para Next.js

−71%

chamadas por consulta em linguagem natural

100%

das entregas freelance no prazo

  • Construí de ponta a ponta o fluxo de desligamento de RH — sete caminhos de aprovação por motivo de saída, documentos gerados já preenchidos, aprovação de diretoria condicionada ao valor simulado e trilha de auditoria — tirando o processo da planilha e do e-mail
  • Reproduzi a simulação rescisória do RH linha a linha contra a planilha de referência, com memória de cálculo persistida e teste de regressão sobre dados reais — o custo do desligamento passou a ser conhecido antes da decisão
  • Extraí o motor de aprovações de dentro desse domínio e o transformei em infraestrutura da empresa: hoje quatro áreas rodam no mesmo motor, e um processo novo virou configuração em tela de administração em vez de desenvolvimento
  • Projetei o controle de estoque de insumos hospitalares, trocando o lote pelo código de produto como parâmetro de rastreio para eliminar a divergência causada pela instabilidade desse dado no fluxo físico; inclui saldo mensal com carry-over, transferência entre unidades, inventário por contagem em tela e baixa por QR code
  • Liderei a migração dos chatbots corporativos de fluxos probabilísticos (orquestrador low-code) para fluxos determinísticos modelados como máquina de estados finitos em Python, com FastAPI, SQLAlchemy e Pytest
  • Reduzi em cerca de 90% o consumo de tokens por fluxo de conversa: antes cada fluxo disparava várias chamadas ao modelo; hoje só uma etapa consome token, e o custo mensal da operação caiu na mesma proporção
  • Desenhei a arquitetura multi-agente que sustenta os assistentes de RH, marketing e intranet na mesma aplicação, com base de conhecimento (RAG), histórico e sessão isolados por agente — e reduzi de propósito a superfície onde a IA decide: menu determinístico para escolha de motivo, escalonamento por contador, modelo só redigindo texto com confirmação humana antes de qualquer escrita
  • Escrevi a suíte de testes de segurança do chatbot — injeção, bypass de autorização e vazamento entre sessões — porque um assistente que entrega contracheque e abre chamado em nome do funcionário é superfície de ataque real
  • Migrei 31 telas do sistema legado (PHP + jQuery) para Next.js e TypeScript, cada uma com rota de API, documentação Swagger e teste end-to-end em Cypress, fechando a leva com auditoria de paridade campo a campo contra o legado
  • Expus o sistema para consulta em linguagem natural via MCP, com catálogo curado de telas e endpoints, autorização por setor e negação por padrão; uma rota desenhada para o formato da pergunta cortou em 71% as chamadas por consulta
  • Re-arquitetei a aplicação de monitoramento das conversas dos chatbots (Laravel + TypeScript): middlewares de segurança com autenticação OAuth2, canal de envio ativo de mensagens e o logging estruturado que não existia — dando rastreabilidade para auditar histórico e diagnosticar incidentes em vez de depender do relato do usuário
  • Modelei o controle de autorização da intranet que conversa com o bot aplicando menor privilégio: a resposta é montada a partir do nível de acesso de quem perguntou, então conteúdo restrito nunca chega a quem não pode vê-lo
  • Cuido da infraestrutura das aplicações — exposição controlada via proxy reverso, roteamento, pipeline de CI/CD para ambiente de teste e monitoramento em Linux com Docker e Nginx
  • Documento a decisão junto com o código, incluindo o que ficou fora do escopo e o que ainda não está resolvido — limitação registrada custa menos que limitação descoberta em produção
PythonFastAPILangChainLaravelNext.jsReactTypeScriptSQL ServerPostgreSQLRedisDockerLinuxNginxCypressPytest

// o núcleo

mova o cursor · role para abrir

Complexidadecontrolada.

Todo sistema que eu recebo chega igual: regra de negócio espalhada, comportamento que ninguém documentou e a explicação de que “funciona assim porque sempre foi assim”. O trabalho é achar a ordem que já está lá dentro e deixá-la explícita no código.

legado → leitura → modelo → teste → produção

04 — case em destaque

Chatbots corporativos com IA.

CMEXX · Rio de Janeiro · sistemas de saúde

Migração dos chatbots corporativos de fluxos probabilísticos (n8n) para fluxos determinísticos em Python, modelados como máquina de estados finitos, com FastAPI, SQLAlchemy e Pytest. A decisão central não foi usar mais IA — foi encolher a superfície onde ela decide: motivo escolhido por menu, escalonamento por contador, modelo apenas redigindo texto, e a base de conhecimento da empresa consultada via MCP com controle de acesso.

antes — probabilístico

entrada do usuário
fluxo n8n · ramo A/B/C
chamada ao modelotoken
chamada ao modelotoken
chamada ao modelotoken
chamada ao modelotoken
resposta — resultado variável

depois — determinístico (FSM)

entrada do usuário
estado: identificar intenção
estado: autorizar menor privilégio
MCP → base de conhecimento
chamada ao modelo1× token
estado: resposta — previsível

Python · FastAPI · SQLAlchemy · Pytest

−90%

consumo de tokens por fluxo de conversa

arquitetura determinística, do menu à resposta

base de conhecimento com menor privilégio

05 — sistemas em produção

Entregas de plataforma na CMEXX: o que existia antes, o que foi construído e o que mudou depois.

plataforma · motor de aprovações

01

Um motor de fluxos para toda a empresa

o problema

Todo processo de aprovação da empresa nascia como sistema novo — a mesma sequência de etapas, o mesmo responsável por etapa, o mesmo anexo obrigatório, reescritos do zero a cada área que pedia.

o que construí

Extraí o motor de dentro do primeiro domínio que o usava e transformei em infraestrutura: etapas reutilizáveis entre fluxos, responsável resolvido dinamicamente (cargo, perfil ou hierarquia) e condições de execução registráveis como ponto de extensão — a regra que decide se uma etapa roda deixou de ser um condicional escondido no controller.

Hoje quatro áreas rodam no mesmo motor. Processo novo virou configuração em tela de administração, não desenvolvimento.

LaravelSQL ServerPHPUnit

rh · fluxo crítico

02

Desligamento de ponta a ponta

o problema

O desligamento de um funcionário vivia em planilha, e-mail e conversa. Cada motivo de saída exige um caminho de aprovação, documentos e cálculo de verbas diferentes — e ninguém sabia em que etapa o processo estava, quem o estava travando, nem quanto a rescisão ia custar antes de decidir.

o que construí

Chamado especializado com sete caminhos de aprovação, um por motivo de saída: documentos exigidos por caminho, geração automática dos documentos já preenchidos, aprovação de diretoria condicionada ao valor simulado, lembrete diário para quem está travando a etapa e histórico completo de quem aprovou o quê, quando e com qual justificativa.

A simulação replica linha a linha a planilha de referência do RH, com memória de cálculo persistida e teste de regressão contra dados reais — o custo passou a ser conhecido antes da decisão, não depois.

LaravelSQL ServerBladePHPUnit

operação · estoque hospitalar

03

Saldo de insumos com fonte de verdade única

o problema

O saldo de insumos das centrais de esterilização existia só dentro do ERP, rastreado por lote — e o lote registrado divergia do lote que chegava fisicamente na unidade. Resultado: saldo divergente, baixa atrasada e ninguém com resposta para o porquê.

o que construí

Novo controle de movimentação e saldo mensal com carry-over, rastreio pelo código do produto no lugar do lote, transferência entre unidades numa única operação, inventário por contagem feita na própria tela e baixa por leitura de QR code.

A regra de acumulação saiu do SQL para uma função pura — foi assim que o bug de saldo mais difícil do projeto (mês sem movimento quebrando o acumulado) virou caso de teste em vez de reincidência.

LaravelSQL ServerJavaScriptPHPUnit

ia · atendimento interno

04

Assistentes de WhatsApp com a IA sob controle

o problema

Um assistente que entrega contracheque e abre chamado em nome do funcionário é superfície de ataque real — e um modelo de linguagem erra. Deixar a decisão de negócio para o modelo era o caminho fácil e o errado.

o que construí

Arquitetura multi-agente: vários assistentes na mesma aplicação, cada um com base de conhecimento, histórico e sessão isolados. A superfície onde a IA pode errar foi reduzida de propósito — motivo de chamado sempre por menu, escalonamento sempre por contador determinístico, IA apenas redigindo texto e sempre com confirmação humana antes de qualquer escrita.

Suíte de testes de segurança dedicada (injeção, bypass de autorização, vazamento entre sessões) e uma chave que desliga a abertura automática de chamado sem derrubar o serviço.

PythonFastAPILangChainPostgreSQLRedisPytest

modernização · frontend

05

31 telas fora do legado

o problema

Um sistema em PHP e jQuery da metade da década passada, sendo substituído tela a tela, sem poder parar a operação um dia sequer.

o que construí

31 telas migradas para Next.js e TypeScript — cada uma com rota de API, teste end-to-end e documentação. Migrar não é copiar: cada tela exigiu descobrir o comportamento não documentado da versão antiga e decidir, campo a campo, o que replicar, o que corrigir e o que descartar.

Fechei a leva com uma auditoria de paridade contra o legado, campo por campo e ação por ação — e o que tinha ficado de fora entrou.

Next.jsTypeScriptCypressVitestLaravel

ia · consulta ao sistema

06

O sistema respondendo em linguagem natural

o problema

Responder “quanto faturamos no mês passado neste cliente?” exigia abrir o sistema, saber em qual tela olhar e cruzar o resultado à mão.

o que construí

Servidor MCP expondo um catálogo curado de telas e endpoints, com autorização por setor e negação por padrão: o que não foi curado e revisado não aparece para ninguém, em vez de vazar por omissão.

Uma rota de consulta desenhada para o formato da pergunta cortou em 71% as chamadas necessárias por consulta — de sete para duas.

TypeScriptMCPOpenAPI

06 — projetos

Uma seleção de sistemas, sites e aplicações entregues em produção.

Parceiros Rubraz

Project 01

Parceiros Rubraz

Sistemas

Calcula frete cruzando distância (Google Maps API) com as dimensões do produto.

Backend próprio em PHP + MySQL: autenticação, recuperação de senha e envio de e-mail.

Cadastro e painel do parceiro em React, com arquitetura fácil de manter.

ReactTypeScriptPHPMySQL
rubrazlajes.com/parceiros
Parceiros Rubraz

// e mais 15 em produção

Área do Arquiteto — TrançartePHP · MySQLinterno
Fórum Breno SilvaReact · TypeScript · PHP · MySQLinterno
Precnet — InvestidorWordPress · PHP · JavaScript · REST APIHelp Baterias — InstitucionalCodeIgniter · PHPGuaravitonWordPress · PHPItalínea RioWordPress · Elementor · PHPMirante do ArvrãoWordPress · Elementor · PHP
PostfastNext.js · Tailwind · Node.js · PM2fora do ar
Diagonal AgReact · Tailwind · PHPfora do ar
Revista IbrempNext.js · Tailwindfora do ar
CorporeNext.js · React · TailwindCarneiro e CarballidoReact · Tailwind · PHPCarlos PsicanalistaNext.js · Tailwind
Thialita Power BossNext.js · Tailwindfora do ar
Seu Treino — 28 diasReact · Tailwindfora do ar

07 — github em tempo real

↗ github.com/lucassdantas

$ fetch api.github.com/users/lucassdantas

08 — terminal interativo

Explore meu perfil por linha de comando — como um dev faria.

lucas@portfolio: ~
██ lucas.dantas — portfolio v3.0
Digite 'help' para ver os comandos disponíveis.
lucas@portfolio:~$

09 — playground de código

Um mini editor JavaScript rodando aqui mesmo, na sua aba.

editor.js
console
> aguardando execução...

10 — educação

jan/2024 — jan/2028

Bacharelado em Engenharia de Software

Faculdade Descomplica

Engenharia de software, AWS, DevOps, computação em nuvem, desenvolvimento ágil e apps com Flutter.

ago/2022 — jan/2024

Técnico em Informática

Senac RJ

Liderei o desenvolvimento de sistema de estoque em Java e de app em React Native; infraestrutura de redes, Node.js, Git/GitHub.

// certificados

// livros que moldaram meu código

CAClean ArchitectureRobert C. Martin
CCClean CodeRobert C. Martin
PPThe Pragmatic ProgrammerHunt & Thomas
LSThe Lean StartupEric Ries

// idiomas

PortuguêsNativo
InglêsC1
EspanholB1
FrancêsA1

11 — contato

Sistema complexo, prazo real.É onde eu trabalho melhor.

Aberto a oportunidades como desenvolvedor full stack pleno ou sênior — remoto, ou híbrido no Rio. Rendo mais em time com processo definido, code review de verdade e espaço para propor arquitetura.

📍 Rio de Janeiro, Brasil · remoto