Foto de José Hernández
Full-Stack Product Engineer

José Hernández

Construo software que resolve problemas reais, da arquitetura até o último pixel.

Sou programador autodidata com uma abordagem rigorosa em arquitetura de software e código limpo. Trabalho com o stack moderno de desenvolvimento web para entregar produtos funcionais com agilidade, do primeiro commit até o deploy em produção.

Tech Stack

Ferramentas e tecnologias que uso no dia a dia para construir produtos do início ao fim.

Frontend

  • Next.js
  • React
  • TypeScript
  • Tailwind CSS

Backend & Banco de Dados

  • Node.js
  • PostgreSQL
  • Supabase

Ferramentas & Cloud

  • Git
  • Docker
  • Vercel
  • Vitest

Projetos em Destaque

Projetos construídos de ponta a ponta, do design ao banco de dados.

PagoMovilOCR

Open Source / Pacote npm

Biblioteca npm que extrai, normaliza e valida comprovantes de Pago Móvil venezuelanos via OCR.

Problema

Na Venezuela, confirmar um Pago Móvil geralmente significa pedir ao cliente uma captura de tela e ler à mão (valor, referência, data, banco), o que é lento, sujeito a erro humano e não escala para um negócio que processa muitos pagamentos por dia.

Solução

O PagoMovilOCR automatiza essa leitura: recebe uma imagem do comprovante e devolve dados estruturados junto com um conjunto de validações de consistência, sem depender de backend próprio e sem enviar a imagem a nenhum servidor.

Engineering

  • Projetei um pipeline de 4 etapas independentes e testáveis separadamente: OCR → normalização → parsing → validação.
  • Implementei um motor OCR intercambiável (Tesseract.js por padrão, rodando 100% no cliente/processo local via WebAssembly).
  • Construí um sistema de perfis de banco registráveis (`registerBankProfile`) para detectar, e quando seguro, fazer o parsing do formato de cada banco.
  • Desenvolvi um módulo de conversão USD/VES com a taxa oficial do BCV (via pydolarve.org), cache em memória configurável e tratamento explícito de dados `stale`.
  • Cobri toda a lógica com testes unitários e de integração em Vitest: normalização, parsers, validadores individuais, o módulo de câmbio com providers simulados, e `verifyPayment` de ponta a ponta com um OCR simulado.

Tech Stack

Node.jsTypeScriptVitestTesseract.jsOCR

Site Auditor

SEO & Performance Tooling

Analisa a saúde de SEO e o desempenho de qualquer URL em segundos.

Problema

Detectar problemas de SEO técnico e metadados quebrados costuma exigir revisar manualmente várias ferramentas dispersas, o que torna as auditorias rápidas mais lentas.

Solução

O Site Auditor centraliza a análise: recebe uma URL, avalia suas tags OpenGraph e os tempos de resposta HTTP, e gera um relatório executivo visual em uma única tela.

Engineering

  • Implementei Server Actions do Next.js para orquestrar o scraping e a análise sem expor um endpoint de API público.
  • Projetei o parser de tags OpenGraph e metadados HTML, tratando casos incompletos ou malformados.
  • Construí a visualização dos resultados com Recharts, mapeando cada verificação para um status (correto / alerta / erro).
  • Validei e higienizei as URLs de entrada para evitar requisições a domínios não seguros.

Tech Stack

Next.jsServer ActionsTypeScriptTailwind CSSRecharts

DocuExtract

OCR & Document Automation

Extrai automaticamente os dados fiscais principais de faturas e recibos.

Problema

A captura manual de dados de faturas para a contabilidade é lenta e propensa a erros humanos, e as empresas precisam de um fluxo confiável mesmo quando o OCR não tem certeza do resultado.

Solução

O DocuExtract permite enviar uma fatura ou recibo e usa OCR para extrair os dados fiscais principais, deixando-os prontos para a contabilidade. Quando a confiança do reconhecimento é baixa, o documento segue para um fluxo de revisão humana em vez de salvar dados pouco confiáveis.

Engineering

  • Projetei o pipeline de processamento (envio → OCR/extração → parsing → persistência), separando o processamento no servidor da UI.
  • Integrei o Tesseract.js (espanhol + inglês) para OCR em imagens, e extração da camada de texto nativa de PDFs com pdf-parse.
  • Construí um sistema de confiança combinando a confiabilidade do OCR e os campos fiscais detectados, que encaminha automaticamente para revisão humana abaixo de um limiar configurável.
  • Implementei regex especializadas para identificar identificadores fiscais (NIT/RIF/CUIT/RFC/RUC), datas (numéricas e por extenso) e valores com base em palavras-chave contábeis.
  • Isolei os dados por empresa com Row Level Security do Supabase, e servi os documentos originais por meio de URLs assinadas de curta duração a partir de um bucket de Storage privado.
  • Mantive a `service_role key` do Supabase exclusivamente em Route Handlers no servidor, nunca exposta ao navegador.

Tech Stack

Next.jsTypeScriptNode.jsTesseract.jsTailwind CSSSupabase

TrimLink

URL Shortener & Analytics

Encurta links e registra métricas de cliques, país e dispositivo.

Problema

Links longos são difíceis de compartilhar e não oferecem visibilidade sobre quem interage com eles.

Solução

O TrimLink transforma URLs longas em links curtos únicos e registra de forma anônima cliques, país (por IP) e tipo de dispositivo.

Engineering

  • Implementei o redirecionamento de links curtos usando Middleware do Next.js na edge.
  • Projetei o esquema de analytics no Supabase para registrar cliques sem armazenar dados pessoais identificáveis.
  • Construí a resolução de país por IP e a detecção do tipo de dispositivo a partir do user-agent.
  • Gerei identificadores curtos únicos com verificação de colisões.

Tech Stack

Next.jsMiddlewareTypeScriptTailwind CSSSupabase

LexChain

LegalTech & Blockchain

Gera contratos legais dinâmicos e verifica sua integridade por meio de uma impressão digital em blockchain.

Problema

Freelancers que trabalham com clientes em diferentes países precisam de contratos adaptados a cada jurisdição sem depender de um advogado para cada caso simples, e precisam conseguir provar que o documento assinado não foi alterado depois.

Solução

O LexChain gera contratos dinâmicos conforme a jurisdição selecionada e calcula uma impressão digital do documento, registrada em uma testnet da Ethereum, permitindo verificar a qualquer momento que o contrato não foi modificado.

Engineering

  • Implementei a geração de PDFs dinâmicos com pdf-lib a partir de modelos por jurisdição.
  • Integrei o ethers.js para calcular o hash do contrato e registrá-lo em uma testnet da Ethereum.
  • Projetei o sistema de modelos de contrato parametrizáveis por país e tipo de acordo.
  • Validei os dados de entrada do formulário para garantir a consistência do contrato gerado.

Tech Stack

Next.jsTypeScriptTailwind CSSpdf-libethers.jsTestnet Ethereum

Resultados

  • 2 jurisdições suportadas (Espanha, Venezuela)

Experiência Profissional

Isto é trabalho que já realizei profissionalmente para uma empresa real, não um projeto próprio.

Full-Stack Developer / Product Engineer

RE/MAX Arena

2025 — 2026

Desenvolvi e mantive soluções digitais para uma empresa imobiliária real, cobrindo tanto o produto voltado ao cliente quanto as ferramentas internas da equipe.

Responsabilidades

  • Desenvolvi e mantive o site corporativo, liderando depois uma versão completamente nova com rebranding.
  • Construí dashboards internos e ferramentas CRUD sob medida para digitalizar os processos da equipe.
  • Implementei geração de PDFs e fluxos de exportação para relatórios internos.
  • Integrei APIs de inteligência artificial e de geolocalização nas ferramentas internas.
  • Fiz o deploy e a manutenção das aplicações em produção, incluindo a administração do servidor.
  • Contribuí para a estratégia de SEO local e reputação digital, ajudando a consolidar uma base de mais de 100 avaliações positivas no Google.
  • Migrei e administrei a rede LAN do escritório; o suporte técnico dos equipamentos foi uma responsabilidade complementar dentro da infraestrutura.

Stack

PHPJavaScriptSQLAPIs RESTLinux / ServidoresRedesSEO técnico

Vamos construir algo juntos?

Disponível para entrar em uma equipe. Se você procura um perfil full-stack capaz de levar um produto da arquitetura até o deploy, vamos conversar.