Portfólio

Os 10 projetos de portfólio que fazem o recrutador te chamar.

To-do list, clone da Netflix e calculadora não contratam ninguém. Cada projeto aqui tem as funcionalidades obrigatórias, a stack sugerida, o diferencial e um material para começar. Não faça os 10: escolha 2 ou 3, termine e coloque no ar.

O READMEproblemacomo rodararquiteturadecisõeslink no ar

Projeto bom chama atenção. Na mentoria, eu ajudo você a escolher os projetos certos para a vaga que você quer e a mostrar isso no LinkedIn.

Projeto01

Em vez de: To-do list

Encurtador de links com métricas

O que prova: Banco, cache e API com muito acesso de leitura.

  • Gerar link curto único e redirecionar em poucos milissegundos
  • Cache dos links mais acessados no Redis
  • Contagem de cliques por dia, país e dispositivo
  • Limite de requisições por IP (rate limit)

Stack sugerida: Node.js ou Go, PostgreSQL, Redis, deploy em um serviço gratuito

Diferencial: Teste de carga com k6 mostrando quantas requisições por segundo ele aguenta.

Documentação do Redis: cache e estruturas de dados ↗
Projeto02

Em vez de: CRUD de produtos

API de pagamento com webhook

O que prova: Integração com sistema externo, dinheiro e erro de rede.

  • Checkout no modo de teste do Stripe
  • Webhook que confirma o pagamento e atualiza o pedido
  • Chave de idempotência: a mesma cobrança nunca é feita duas vezes
  • Estados do pedido: criado, pago, falhou, reembolsado

Stack sugerida: Qualquer back-end, PostgreSQL, Stripe em modo de teste

Diferencial: Reprocessar webhooks que falharam sem duplicar nada.

Stripe: requisições idempotentes ↗
Projeto03

Em vez de: Formulário de contato

Processamento em fila

O que prova: Trabalho assíncrono, nova tentativa e tolerância a falha.

  • Usuário pede um relatório e recebe a resposta na hora
  • Um worker gera o relatório em segundo plano
  • Nova tentativa automática quando falha, com limite
  • Tela ou endpoint com o status de cada tarefa

Stack sugerida: Node.js com BullMQ ou Python com Celery, Redis

Diferencial: Painel com tarefas na fila, concluídas e com erro.

Documentação do BullMQ ↗
Projeto04

Em vez de: Chatbot que só repassa a pergunta para a API

Assistente de IA sobre documentos

O que prova: IA usada como engenharia, não como mágica.

  • Upload de PDFs e divisão do texto em partes
  • Busca por similaridade com embeddings em um banco vetorial
  • Resposta que cita o trecho e o documento de origem
  • Custo e tempo de cada pergunta registrados

Stack sugerida: Python ou TypeScript, PostgreSQL com pgvector, API de um modelo de IA

Diferencial: 10 perguntas de teste com a resposta esperada para medir a qualidade.

pgvector: busca vetorial no PostgreSQL ↗
Projeto05

Em vez de: Landing page sem back-end

Sistema de agendamento

O que prova: Concorrência, transação e regra de negócio de verdade.

  • Profissionais com horários disponíveis e clientes que reservam
  • Dois clientes nunca reservam o mesmo horário, nem ao mesmo tempo
  • Fuso horário correto para quem está em outra cidade
  • Cancelamento com regra de prazo e e-mail de confirmação

Stack sugerida: Qualquer back-end, PostgreSQL com transação ou restrição no banco

Diferencial: Teste automatizado que tenta reservar o mesmo horário em paralelo.

PostgreSQL: restrições de exclusão (impedem horários sobrepostos) ↗
Projeto06

Em vez de: Clone do WhatsApp só com a tela

Chat em tempo real

O que prova: Comunicação em tempo real e estado compartilhado.

  • Salas com mensagens entregues na hora via WebSocket
  • Indicador de quem está online e de quem está digitando
  • Histórico salvo no banco, com paginação
  • Reconexão automática quando a internet cai

Stack sugerida: Node.js com Socket.IO ou WebSocket puro, Redis, PostgreSQL

Diferencial: Duas instâncias do servidor trocando mensagens pelo Redis.

MDN: API de WebSockets (em português) ↗
Projeto07

Em vez de: Clone da Netflix

Dashboard com dados públicos reais

O que prova: Consumir API real, tratar dados e mostrar o que importa.

  • Coleta diária de uma API pública (ex.: câmbio e Selic no Banco Central)
  • Dados limpos e salvos no seu banco
  • Gráficos com filtro de período
  • Atualização automática agendada

Stack sugerida: Python ou TypeScript, PostgreSQL, uma biblioteca de gráficos

Diferencial: Uma conclusão escrita no topo: o que os dados mostram.

Portal de Dados Abertos do Banco Central ↗
Projeto08

Em vez de: Calculadora

Monitor de sites com alertas

O que prova: Tarefas agendadas, notificações e observabilidade.

  • Cadastro de URLs para verificar a cada minuto
  • Histórico de tempo de resposta e de quedas
  • Alerta por e-mail ou Telegram quando um site cai
  • Página pública de status

Stack sugerida: Qualquer back-end, um agendador de tarefas, PostgreSQL

Diferencial: Porcentagem de disponibilidade (uptime) dos últimos 30 dias.

API de bots do Telegram ↗
Projeto09

Em vez de: Mais um projeto que ninguém instala

Ferramenta de linha de comando publicada

O que prova: Empacotar, documentar, testar e versionar como open source.

  • Resolve uma tarefa repetitiva sua (ex.: gerar changelog, renomear arquivos)
  • Publicada no npm ou no PyPI, instalável com um comando
  • README com exemplo de uso e GIF
  • Testes e versão seguindo versionamento semântico

Stack sugerida: Node.js ou Python, GitHub Actions para publicar

Diferencial: Alguém que não é você instalando e abrindo uma issue.

npm: como publicar um pacote ↗
Projeto10

Em vez de: 10 projetos que ninguém nunca usou

Projeto com usuário de verdade

O que prova: Que você entrega, mantém e corrige com feedback real.

  • Resolve um problema seu, da sua família ou do seu time
  • Pelo menos 5 pessoas usando toda semana
  • Bugs reportados e corrigidos, registrados nas issues
  • Métrica simples de uso no README

Stack sugerida: A stack que você quer usar na próxima vaga

Diferencial: A história de um bug real que você encontrou, entendeu e corrigiu.

GitHub: como escrever um bom README ↗

Júnior coleciona tutorial. Quem é contratado mostra problema resolvido.

O dev júnior coleciona projeto de tutorial. Quem é contratado mostra um problema difícil resolvido e no ar.

O README de cada projeto: o problema que ele resolve, como rodar, a arquitetura em um desenho, as decisões técnicas e o link do projeto no ar.

Conteúdo sobre carreira dev, todo dia: @lucasadvice ↗

Mentoria

Seja chamado para as vagas certas

Dois projetos assim valem mais que dez clones, e são eles que levam você para a entrevista das vagas que pagam melhor. A mentoria acelera esse caminho: plano de estudo para a vaga que você quer, LinkedIn que mostra o seu trabalho e as empresas certas para conversar.