Eu crio sistemas reais.

Produtos digitais completos para problemas que existem fora da tela.

disponível vagas e projetos full stack software & produto Belo Horizonte, MG hora local --:-- PWA · APIs · cloud · dados · segurança

Eu gosto de entender o processo inteiro e construir a solução inteira: experiência, interface, regras de negócio, API, dados, infraestrutura e publicação.

Henrique Souza, Belo Horizonte

Abra ocódigo.

Cinco sistemas, cinco repositórios públicos. Cada janela abaixo tem três abas: a arquitetura com a requisição correndo pelo diagrama, os dados ou as rotas, e um trecho real do código. Clique, passe o mouse, fuce.

PublicadoPWA + API própria

Quarta Amstel

Quarta-feira, fim de tarde. O celular avisa que tem campanha rolando num bar da sua cidade.

Um app que se instala direto do navegador, mostra os bares no mapa e manda a notificação. Do outro lado, um painel onde a equipe aprova bares, campanhas e disparos, com login em dois fatores.

Cloudflare Workers, D1, Web Push, Leaflet

Repositório
quarta-amstel / worker / index.jsmain
clientePWA · service worker, Leaflet, geolocalização
https / json
edgeWorker único · itty-router, CORS, rate limit
sql
dadosD1 · bares, campanhas, inscrições
painelAdmin · aprova e dispara
RFC 8291 + 8292
saídaWeb Push · VAPID, por cidade

// localização das inscrições: duas casas decimais. bairro, não endereço.

worker/index.js2.527 linhasJavaScript01/05
Em desenvolvimentoPreview publicado

ObraPro

No canteiro, o passo a passo da tarefa aberto no celular. No escritório, a evidência chegando.

Plataforma para aprender, planejar e acompanhar obra. Cada empresa vê só os próprios dados, e cada pessoa só o que o papel dela permite. Ainda em construção, com preview no ar.

Laravel, TypeScript, Cloudflare Workers, D1

Repositório
ObraPro / cloudflare / src / auth / membershipRepository.tsmain
produçãoLaravel · monólito modular, PHP 8.3
previewWorker TS · mesmas regras na borda
sessão: só o hash SHA-256 do token
authD1 · AUTH_DB · usuários e sessões
operaçãoD1 · OPERATIONS_DB · obras, chamados
upload validado
arquivosR2 privado · evidências

// toda API privada exige sessão real, vínculo ativo e resposta sem cache.

membershipRepository.ts59 linhasTypeScript02/05
Em uso internoERP sob medida

Labs & Tracks

Antes era planilha que travava quando duas pessoas abriam ao mesmo tempo.

Obras, chamados, ar-condicionado, controle de acesso e tarefas do time num painel só. O técnico escaneia o QR colado no equipamento e registra a preventiva ali mesmo.

Python, FastAPI, Databricks, Delta Lake

Repositório
dashboard-labs-and-tracks / app.pymain
clientePWA · HTML, CSS, JS sem framework
JWT em cookie httponly
backendFastAPI · cache em memória
só na escrita
warehouseSQL Warehouse · serverless
dadosDelta Lake · um schema por módulo

// nenhuma leitura vai ao banco: cada consulta ao warehouse custava de 200 a 500 ms.

app.py4.224 linhasPython03/05
EncerradoUsado durante o evento de 2026

Rota di Buteco

Um mês, 128 bares e um grupo de amigos querendo saber quem ia mais longe.

Cada visita só vale com foto tirada pela câmera, na hora, mais nota e quilômetros rodados. Nove rankings, grupos com roteiro próprio e um feed para ver quem foi aonde.

Firebase, Firestore, Leaflet

Repositório
rotadibuteco / rotadibuteco / js / bares.jsmain
clientePWA · HTML, CSS, JS puro
email e senha
authFirebase Auth
leituras e escritas
dadosFirestore · visitas, ranking, feed, grupos
arquivosStorage · fotos das visitas
mapaLeaflet · OpenStreetMap

// sem servidor próprio: auth, banco, arquivos e hosting no firebase.

js/bares.js235 linhasJavaScript04/05
Pré-beta 1.0PWA + Android

TrilhaBH

Bar bom em BH não falta. Difícil é escolher onde ir hoje, e com quem.

Filtro por região e por vibe, roteiro montado com o grupo, ranking e emblemas. Funciona sem conta e vira app de Android sem reescrever uma linha.

Firebase, Leaflet, Capacitor

Repositório
trilhaBH / www / js / utils.jsmain
webPWA · service worker
androidCapacitor · webview nativa
conta ou modo anônimo
authFirebase Auth
onSnapshot nas visitas
dadosFirestore · descobrir, ranking, feed, grupos, XP

// dá para usar sem conta: o progresso fica no aparelho até a pessoa se cadastrar.

www/js/utils.js216 linhasJavaScript05/05

Tudo aberto, linha por linha.

Os cinco repositórios são públicos. README, código, testes e decisões estão lá para quem quiser conferir antes de conversar.

01 / 05

Segurançadesde a linha 1.

Não é um selo no rodapé. São decisões que estão no código dos projetos acima, e dá para abrir o repositório e conferir cada uma.

Senha nunca vira texto

Senhas são guardadas só como hash com sal. Nem eu consigo ler.

  • Quarta AmstelPBKDF2-SHA256 com 100 mil iterações e sal aleatório, direto no Web Crypto.
  • ObraProFormato versionado PBKDF2-SHA256$iterações$sal$hash, mínimo de 12 caracteres, e erro de login que não diz o que falhou.
  • Labs & Tracksbcrypt antes de gravar qualquer senha no banco.

Sessão que não vaza

Mesmo que alguém leia o banco, não sai de lá com uma sessão válida.

  • ObraProO banco guarda só o hash SHA-256 do token. Sessão expirada ou revogada é recusada.
  • Labs & TracksJWT em cookie httponly e secure. Rota administrativa exige o papel certo, não só um token válido.

Porta do admin trancada

O painel administrativo é o alvo mais óbvio, então é o mais protegido.

  • Quarta AmstelLogin com código de dois fatores (TOTP) e limite de tentativas por IP.
  • Quarta AmstelIP suspeito é bloqueado pelo painel, com log de segurança para auditar depois.

Um cliente nunca vê o dado do outro

Em sistema multiempresa, a regra é conferida no servidor, sempre.

  • ObraProAcesso só com vínculo active entre pessoa e organização. Um ID trocado no navegador não amplia nada.
  • ObraProTestes de autorização no Worker (Vitest) e de acesso por organização no Laravel (PHPUnit).

Arquivo só entra se provar o que é

Upload é porta de entrada. Cada arquivo é checado antes de ser aceito.

  • ObraProSó JPEG, PNG, WebP ou PDF até 10 MiB, com checksum SHA-256, guardado em bucket privado.
  • TrilhaBHFotos validadas por tipo e tamanho antes do envio.

O navegador também é defendido

Proteção não termina no backend.

  • Quarta AmstelHeaders nosniff e X-Frame-Options: DENY, mais Content Security Policy no app.
  • TrilhaBHsanitizeHtml() antes de qualquer texto de usuário ir para a tela, contra XSS.
  • ObraProAPIs privadas com Cache-Control: no-store, inclusive nas respostas de erro.

Coletar só o necessário

Privacidade é decisão de modelagem, não texto de rodapé.

  • Quarta AmstelLocalização arredondada para o nível de bairro. O aparelho vira um hash SHA-256, nunca um identificador legível.
  • Labs & TracksSECURITY.md com canal privado para reportar vulnerabilidade e prazo de resposta.

Tudo listado aqui foi conferido nos repositórios públicos. Segurança é processo: cada projeto continua sendo revisado.

Onde euentro no time.

Tirar um processo da planilha

Entendo como o time trabalha hoje e transformo isso em sistema: banco de dados de verdade, permissões e um painel que todo mundo usa.

Visto em:

App no celular sem depender de loja

PWA que se instala pelo navegador, com mapa, localização e notificação push. E build Android quando faz sentido.

Visto em:

Backend enxuto e seguro

APIs na borda com Cloudflare Workers e D1: autenticação, limite de uso, headers de segurança e custo baixo para manter.

Visto em:

Produto do zero, com regra de negócio

Escopo, fluxo, modelo de dados e entrega contínua, sem perder de vista quem vai usar no fim.

Visto em:Reobra+

Entender o problema

Antes do código: quem usa, onde usa e o que hoje dá errado.

Desenhar o sistema

Dados, permissões e arquitetura no tamanho real do problema. Sem framework só porque está na moda.

Colocar em produção

Deploy automatizado, testes onde importam e evolução junto de quem usa.

Reobra+

Cofundador
Software & Produto

A engenharia sabe o que precisa ser feito. A obra sabe o que está acontecendo. Quase nunca os dois olham para a mesma tela.

O Reobra+ é um produto para construção civil que aproxima conhecimento técnico, planejamento, execução e acompanhamento de obra através de software. Diego cuida da engenharia civil; eu, do software e do produto.

Produto em desenvolvimento
reobra+ / roadmapprivado
produto em desenvolvimento
Conhecimento técnicoengenharia
Planejamentoescopo e etapas
Execuçãoo que acontece na obra
Acompanhamentoquem precisa saber
software & produtoHenrique Souza
engenharia civilDiego
repositórioprivado até o lançamento

// os detalhes técnicos entram aqui quando o produto for público.

Do problemaao deploy.

Por onde cada projeto passou, da ideia ao ar. Passe o mouse no nome de um deles para ver o caminho inteiro, ou clique para abrir.

Camada
ProdutoEscopo, fluxo, experiência SimSimSimSimSim
FrontendJavaScript, HTML, CSS, PWA, Leaflet, Tailwind PWABlade, TailwindJS puroPWAPWA
Backend & APIsRegras, autenticação, integrações. Workers, Laravel, FastAPI WorkerLaravel, WorkerFastAPIRegras FirestoreWorker auxiliar
DadosSQL, D1, Firestore, Delta Lake D1D1, SQLDelta LakeFirestoreFirestore
CloudCloudflare, Firebase, Databricks CloudflareCloudflareDatabricksFirebaseFirebase
EntregaGit, GitHub Actions, testes, Android Teste de carga k6CI, PHPUnit, VitestDeploy via ActionsPacote AndroidCapacitor

HenriqueSouza.

Teste de verdade é quando alguém na obra, no bar ou na manutenção abre o sistema sem me perguntar nada.

Desenvolvedor Full Stack em Belo Horizonte. Trabalho na interseção entre software, produto e operação, construindo soluções que precisam funcionar fora do mockup.

Hoje também sou cofundador do Reobra+, atuando na frente de Software & Produto ao lado da vertente técnica de engenharia civil.

BaseBelo Horizonte, MG, Brasil

Vamos criaralgo que funcione?

Software, produto, sistemas web e projetos que precisam sair do papel.

Henrique Souza © 2026Belo Horizonte, BrasilVoltar ao topo