O Portfolio Que Mudou Tudo

Lucas tinha 6 meses de estudo. Sabia React, Node, MongoDB. Tinha assistido 200 horas de tutoriais.

Mandou currículo para 50 vagas. Zero respostas.

Então ele passou 1 semana criando um projeto: um dashboard de finanças pessoais. Deploy no Vercel, código no GitHub, README caprichado.

Atualizou LinkedIn com o link. Aplicou para mais 10 vagas.

3 entrevistas na primeira semana.

O que mudou? Não foi o conhecimento (ele já tinha). Foi o portfolio.

"Seu portfolio é sua entrevista de emprego antes da entrevista de emprego. Se não impressiona em 30 segundos, você nem passa da triagem."

Neste guia, você vai aprender exatamente como criar um portfolio que faz recrutadores te chamarem, não te ignorarem.

A Verdade Brutal Sobre Portfolios

O Que Recrutadores REALMENTE Fazem

Entrevistei 30 recrutadores tech. Perguntei: "Como você avalia um candidato júnior?"

O processo deles:

1. Abre LinkedIn (5 segundos)
   ↓
2. Tem link de GitHub/portfolio? 
   SIM → Clica | NÃO → Próximo candidato
   ↓
3. GitHub abre (10 segundos)
   ↓
4. Tem projetos? Commits recentes?
   SIM → Abre projeto | NÃO → Próximo candidato
   ↓
5. Projeto abre (15 segundos)
   ↓
6. Tem README? Deploy funcionando?
   SIM → Lê README | NÃO → Próximo candidato
   ↓
7. README explica bem? (20 segundos)
   ↓
8. Testa app deployado (30 segundos)
   ↓
9. Funciona? Design ok? Código limpo?
   SIM → CALL FOR INTERVIEW
   NÃO → Próximo candidato

TEMPO TOTAL: 90 segundos para decidir

Você tem 90 segundos para impressionar.

Se em qualquer ponto ele encontrar problema, você é eliminado.

Por Que 90% dos Portfolios Falham

Erro #1: GitHub vazio ou desorganizado

  • Sem foto de perfil
  • Bio genérica ou vazia
  • Repositórios com nome "projeto1", "teste", "curso-x"
  • Sem README
  • Último commit há 6 meses

Erro #2: Projetos sem README

  • Recrutador abre repositório
  • Vê código mas não entende o que faz
  • Não sabe como rodar
  • Fecha e passa pro próximo

Erro #3: Projetos não deployados

  • "Clone e rode npm install"
  • Recrutador não vai fazer isso
  • Sem link funcionando = projeto morto

Erro #4: Todo List #47

  • Mesmos projetos que todo mundo faz
  • Calculadora, todo list, clone do Netflix
  • Nada original, nada impressiona

Erro #5: Código tutorial

  • Seguiu tutorial 100%
  • Código idêntico ao do YouTube
  • Recrutador experiente reconhece
  • = você não sabe de verdade

Anatomia de Um Portfolio Matador

Os 5 Componentes Essenciais

Portfolio Profissional =
├── 1. GitHub Otimizado
├── 2. 3-5 Projetos Sólidos
├── 3. README em Cada Projeto
├── 4. Tudo Deployado
└── 5. Portfolio Site (Opcional)

Vamos destrinchar cada um.

Componente 1: GitHub Profissional

Profile README (Seu Cartão de Visitas)

O que é: README que aparece no topo do seu perfil GitHub

Como criar:

  1. Crie repo com SEU USERNAME exato
  2. Exemplo: github.com/joaosilva → crie repo "joaosilva"
  3. Adicione README.md nesse repo
  4. Aparece automaticamente no perfil

Template de Profile README Matador

# Olá! 👋 Sou [Seu Nome]

## Desenvolvedor Full Stack | React • Node.js • PostgreSQL

Após [X anos] em [área anterior], descobri minha paixão por programação e mergulhei de cabeça no mundo tech. Nos últimos [X meses], construí [Y projetos] focados em [área de interesse].

### 🚀 Sobre mim

- 🔭 Atualmente trabalhando em: [Projeto atual]
- 🌱 Estudando: [Tecnologia nova]
- 💼 Buscando: Oportunidades como Desenvolvedor Júnior
- 📫 Contato: [email] | [LinkedIn]

### 🛠️ Tech Stack

**Front-end:**
![React](https://img.shields.io/badge/-React-61DAFB?style=flat-square&logo=react&logoColor=black)
![JavaScript](https://img.shields.io/badge/-JavaScript-F7DF1E?style=flat-square&logo=javascript&logoColor=black)
![TypeScript](https://img.shields.io/badge/-TypeScript-3178C6?style=flat-square&logo=typescript&logoColor=white)
![HTML5](https://img.shields.io/badge/-HTML5-E34F26?style=flat-square&logo=html5&logoColor=white)
![CSS3](https://img.shields.io/badge/-CSS3-1572B6?style=flat-square&logo=css3&logoColor=white)

**Back-end:**
![Node.js](https://img.shields.io/badge/-Node.js-339933?style=flat-square&logo=node.js&logoColor=white)
![Express](https://img.shields.io/badge/-Express-000000?style=flat-square&logo=express&logoColor=white)
![PostgreSQL](https://img.shields.io/badge/-PostgreSQL-4169E1?style=flat-square&logo=postgresql&logoColor=white)

**Ferramentas:**
![Git](https://img.shields.io/badge/-Git-F05032?style=flat-square&logo=git&logoColor=white)
![Docker](https://img.shields.io/badge/-Docker-2496ED?style=flat-square&logo=docker&logoColor=white)
![VS Code](https://img.shields.io/badge/-VS_Code-007ACC?style=flat-square&logo=visual-studio-code&logoColor=white)

### 📊 GitHub Stats

![Suas Stats](https://github-readme-stats.vercel.app/api?username=seuusername&show_icons=true&theme=radical)

### 🎯 Projetos em Destaque

#### 📱 [Nome do Projeto](link-do-projeto)
Sistema de [descrição curta]. Tecnologias: React, Node.js, MongoDB
- ✨ Feature 1
- 🚀 Feature 2
- 💡 Feature 3

[Ver mais projetos abaixo ⬇️]

### 📫 Como me encontrar

[![LinkedIn](https://img.shields.io/badge/-LinkedIn-0A66C2?style=flat-square&logo=linkedin&logoColor=white)](seu-linkedin)
[![Email](https://img.shields.io/badge/-Email-EA4335?style=flat-square&logo=gmail&logoColor=white)](mailto:seu@email.com)
[![Portfolio](https://img.shields.io/badge/-Portfolio-000000?style=flat-square&logo=vercel&logoColor=white)](seu-portfolio)

Pin Seus Melhores Projetos

GitHub permite fixar 6 repositórios no topo do perfil.

Escolha estrategicamente:

  • 3 projetos completos (full-stack)
  • 1 projeto front-end (mostra UI skills)
  • 1 projeto back-end (mostra lógica)
  • 1 contribuição open source (se tiver)

Green Squares (Commits Consistentes)

Aquele gráfico verde de commits IMPORTA.

Por quê? Mostra consistência e disciplina.

Como manter:

  • Commit TODO DIA (mesmo que pequeno)
  • Use GitHub Actions para automatizar
  • Contribua em open source
  • Documente aprendizados (TIL - Today I Learned)

Dica: Não precisa ser código novo todo dia. Pode ser:

  • Atualização de README
  • Refatoração de código antigo
  • Correção de bugs
  • Adição de testes
  • Documentação

Componente 2: Projetos Que Impressionam

Regra de Ouro: Qualidade > Quantidade

❌ Ruim: 20 projetos meia-boca

✅ Bom: 3-5 projetos EXCELENTES

O Que é Um "Projeto Excelente"?

Projeto Excelente =
├── ✅ Resolve problema real (não é só exercício)
├── ✅ Full-stack completo (front + back + DB)
├── ✅ Deploy funcionando (link clicável)
├── ✅ README detalhado (explica tudo)
├── ✅ Código limpo e organizado
├── ✅ Design profissional (não feio)
├── ✅ Responsivo (mobile + desktop)
└── ✅ Features além do básico

Os 3 Níveis de Projetos

Projeto Nível 1: CRUD Básico (Obrigatório)

O que é: Sistema simples com Create, Read, Update, Delete

Exemplo: Sistema de gestão de [X]

  • Gestão de tarefas
  • Controle financeiro pessoal
  • Sistema de biblioteca
  • Agenda de contatos

Features mínimas:

  • Autenticação (login/cadastro)
  • CRUD completo de entidade principal
  • Busca e filtros
  • Paginação
  • Validação de dados

Tech stack sugerida:

  • Front: React + Tailwind CSS
  • Back: Node.js + Express
  • DB: PostgreSQL ou MongoDB
  • Auth: JWT

Projeto Nível 2: Integração com API (Recomendado)

O que é: Consome API externa e apresenta dados de forma útil

Exemplos:

1. Dashboard de Clima + Qualidade do Ar

  • APIs: OpenWeather + AirVisual
  • Features: Previsão 7 dias, alertas, gráficos, favoritos
  • Diferencial: Notificações push, comparação cidades

2. Agregador de Notícias Personalizado

  • API: NewsAPI
  • Features: Filtros por categoria, salvar artigos, resumo AI
  • Diferencial: Machine learning para recomendações

3. Dashboard Cripto em Tempo Real

  • API: CoinGecko
  • Features: Preços live, gráficos, portfolio tracking
  • Diferencial: Alertas de preço, calculadora de lucro

4. GitHub Profile Analytics

  • API: GitHub API
  • Features: Stats detalhadas, linguagens, contribuições
  • Diferencial: Comparação com outros devs, insights

Projeto Nível 3: Original e Complexo (Diferencial)

O que é: Projeto único que mostra criatividade e skills avançadas

Ideias por perfil anterior:

Ex-Professor:

  • Plataforma de quiz educacional com gamificação
  • Sistema de gestão de aulas online
  • Gerador de planos de aula com IA

Ex-Vendedor:

  • CRM simples para pequenos negócios
  • Dashboard de metas e comissões
  • Sistema de follow-up automático

Ex-Designer:

  • Editor de imagens web (tipo Canva simplificado)
  • Gerador de paletas de cores com IA
  • Portfolio builder drag-and-drop

Ex-Contador:

  • Sistema de gestão financeira para MEI
  • Calculadora de impostos interativa
  • Dashboard de fluxo de caixa com previsões

Características do Projeto Nível 3:

  • Combina múltiplas tecnologias
  • Resolve problema específico
  • Tem usuários reais (mesmo que poucos)
  • Arquitetura escalável
  • Testes automatizados
  • CI/CD implementado

Fórmula de Projeto Matador

Projeto Matador =
├── Problema Claro
│   └── "Sistema para [X] que resolve [Y]"
├── Tech Stack Moderna
│   └── React/Vue + Node/Python + PostgreSQL/MongoDB
├── Features Diferenciadas
│   └── Não apenas CRUD básico
├── Design Profissional
│   └── Usa Tailwind, Material UI, ou Chakra
├── Deploy Funcionando
│   └── Vercel, Netlify, Heroku, Railway
├── Código Limpo
│   └── ESLint, Prettier, comentários onde necessário
└── Documentação Completa
    └── README que vende o projeto

Componente 3: README Que Vende

Por Que README é Crítico

Recrutador não vai ler seu código linha por linha. Ele vai ler o README.

README ruim:

# Projeto

Sistema feito com React e Node.

## Como rodar

npm install
npm start

Isso não diz NADA. Recrutador fecha em 5 segundos.

Template de README Matador

# 📱 [Nome do Projeto]

> [Tagline em uma linha explicando o que é]

[![Deploy](https://img.shields.io/badge/demo-online-success)](link-do-deploy)
[![Licença](https://img.shields.io/badge/license-MIT-blue)](LICENSE)

[Screenshot ou GIF animado do projeto funcionando]

## 💡 Sobre o Projeto

[Explique o problema que resolve em 2-3 parágrafos]

Este projeto nasceu da necessidade de [contexto real]. Atualmente, [problema existente]. Com [nome do projeto], usuários podem [solução oferecida].

### Por que construí isso?

[Motivação pessoal, conexão com experiência anterior]

## ✨ Funcionalidades

- ✅ **[Feature 1]:** [Descrição breve]
- ✅ **[Feature 2]:** [Descrição breve]
- ✅ **[Feature 3]:** [Descrição breve]
- ✅ **[Feature 4]:** [Descrição breve]
- 🚧 **[Feature futura]:** Em desenvolvimento

## 🎥 Demo

### Telas Principais

[Screenshots organizados com legendas]

### Vídeo de Demonstração

[Link para vídeo curto (30-60s) mostrando uso]

## 🛠️ Tecnologias Utilizadas

### Front-end
- **React 18** - Biblioteca UI
- **TypeScript** - Tipagem estática
- **Tailwind CSS** - Estilização
- **React Query** - State management
- **React Hook Form** - Formulários
- **Axios** - HTTP client

### Back-end
- **Node.js** - Runtime
- **Express** - Framework web
- **PostgreSQL** - Banco de dados
- **Prisma** - ORM
- **JWT** - Autenticação
- **Bcrypt** - Hash de senhas

### DevOps & Ferramentas
- **Docker** - Containerização
- **GitHub Actions** - CI/CD
- **Vercel** - Deploy front-end
- **Railway** - Deploy back-end
- **Jest** - Testes unitários

## 🚀 Como Rodar Localmente

### Pré-requisitos

- Node.js 18+
- PostgreSQL 14+
- npm ou yarn

### Instalação

1. Clone o repositório
```bash
git clone https://github.com/usuario/projeto.git
cd projeto
```

2. Instale dependências
```bash
# Front-end
cd frontend
npm install

# Back-end
cd ../backend
npm install
```

3. Configure variáveis de ambiente

Crie arquivo `.env` na pasta backend:
```env
DATABASE_URL="postgresql://user:password@localhost:5432/dbname"
JWT_SECRET="seu-secret-aqui"
PORT=3333
```

4. Execute migrations
```bash
cd backend
npx prisma migrate dev
```

5. Rode o projeto
```bash
# Terminal 1 - Back-end
cd backend
npm run dev

# Terminal 2 - Front-end
cd frontend
npm run dev
```

Acesse: http://localhost:3000

## 📁 Estrutura do Projeto

```
projeto/
├── frontend/
│   ├── src/
│   │   ├── components/
│   │   ├── pages/
│   │   ├── services/
│   │   ├── hooks/
│   │   └── utils/
│   └── package.json
├── backend/
│   ├── src/
│   │   ├── controllers/
│   │   ├── routes/
│   │   ├── models/
│   │   ├── middleware/
│   │   └── utils/
│   └── package.json
└── README.md
```

## 🧪 Testes

```bash
# Rodar todos os testes
npm test

# Cobertura
npm run test:coverage
```

Cobertura atual: 78%

## 📝 Aprendizados

### Desafios Enfrentados

1. **[Desafio 1]:** [Como você resolveu]
2. **[Desafio 2]:** [Solução implementada]
3. **[Desafio 3]:** [O que aprendeu]

### Próximos Passos

- [ ] Implementar notificações em tempo real (WebSocket)
- [ ] Adicionar modo offline (PWA)
- [ ] Melhorar cobertura de testes (meta: 90%)
- [ ] Internacionalização (i18n)

## 📄 Licença

Este projeto está sob licença MIT. Veja o arquivo [LICENSE](LICENSE) para mais detalhes.

## 👤 Autor

**[Seu Nome]**

- LinkedIn: [seu-linkedin](link)
- GitHub: [@usuario](link)
- Email: seu@email.com
- Portfolio: [seu-portfolio](link)

## 🙏 Agradecimentos

- [Recurso/biblioteca que ajudou]
- [Pessoa que inspirou]
- [Tutorial que seguiu parcialmente]

---

⭐ Se este projeto te ajudou, considere dar uma estrela!

[Ver outros projetos →](link-do-seu-github)

Elementos Essenciais do README

1. Visual First (Screenshot/GIF)

Recrutador quer VER, não só ler. Primeiro elemento depois do título deve ser visual.

2. Link de Deploy Destacado

Badge clicável no topo. Se não tem deploy, você já perdeu.

3. Explicação Clara do Problema

Não é "projeto de estudo". É "solução para X problema".

4. Tech Stack Detalhada

Mostre que você conhece ferramentas modernas.

5. Instruções Funcionam

Teste você mesmo. Clone em máquina limpa e rode. Funciona?

6. Seção de Aprendizados

Mostra maturidade. "Enfrentei X, resolvi com Y, aprendi Z".

GIF Animado: O Diferencial

Por quê funciona: Mostra app funcionando sem recrutador precisar abrir.

Como criar:

  • Windows: ScreenToGif (grátis)
  • Mac: Kap (grátis)
  • Online: CloudConvert (converte vídeo → GIF)

Dicas:

  • 30-60 segundos máximo
  • Mostra flow principal do app
  • Comprime (< 5MB) - use ezgif.com
  • Upload no próprio repo (não link externo)

Componente 4: Deploy Profissional

Por Que Deploy é Obrigatório

Sem deploy = Recrutador precisa:

  1. Clonar repo
  2. Instalar dependências
  3. Configurar env
  4. Subir banco de dados
  5. Rodar projeto

Recrutador vai fazer isso? NUNCA.

Com deploy = Recrutador clica link e VÊ funcionando. Simples.

Onde Deployar (Grátis)

Front-end

1. Vercel (Melhor para React/Next.js)

  • ✅ Deploy em 30 segundos
  • ✅ SSL automático
  • ✅ CI/CD integrado com GitHub
  • ✅ Preview de PRs
  • ✅ 100% grátis para projetos pessoais

2. Netlify (Melhor para sites estáticos)

  • ✅ Similar ao Vercel
  • ✅ Formulários gratuitos
  • ✅ Funções serverless

3. GitHub Pages (Simples)

  • ✅ Integração nativa com GitHub
  • ❌ Só para sites estáticos

Back-end

1. Railway (Melhor 2026)

  • ✅ Deploy de Node, Python, Go, etc
  • ✅ Banco de dados incluído (PostgreSQL, MongoDB)
  • ✅ $5 crédito grátis/mês
  • ✅ UI super simples

2. Render (Alternativa sólida)

  • ✅ Similar ao Railway
  • ✅ Plano gratuito generoso
  • ❌ App "dorme" após inatividade (demora 30s para acordar)

3. Heroku (Clássico)

  • ✅ Mais conhecido
  • ❌ Plano grátis removido em 2022
  • 💰 Mínimo $7/mês agora

Full-Stack (Front + Back Junto)

1. Vercel (com Serverless Functions)

  • Front: Static
  • Back: API routes (serverless)
  • Tudo em um lugar

2. Railway

  • Pode deployar front e back no mesmo projeto

Checklist de Deploy

Antes de Compartilhar:
[ ] Link funciona (você testou?)
[ ] SSL ativo (https://, não http://)
[ ] Não mostra erros no console
[ ] Responsivo (testou no celular?)
[ ] Loading states (não trava esperando API)
[ ] Tratamento de erro (não quebra se API falhar)
[ ] Dados de exemplo (já vem populado ou fácil de adicionar)
[ ] Performance ok (não demora 10s pra carregar)

URL Personalizada (Diferencial)

❌ Ruim: random-name-12345.vercel.app

✅ Bom: finance-dashboard-joaosilva.vercel.app

⭐ Ótimo: dashboard.joaosilva.com (domínio próprio)

Como conseguir domínio grátis:

  • GitHub Student Pack (grátis .me por 1 ano)
  • Freenom (.tk, .ml, .ga - grátis mas não profissional)

Como comprar barato:

  • Namecheap: ~$10/ano (.com)
  • Registro.br: ~R$ 40/ano (.com.br)

Componente 5: Portfolio Site (Opcional Mas Recomendado)

Quando Criar Portfolio Site

Necessário? Não. GitHub + LinkedIn bastam.

Diferencial? SIM. 80% não têm. Você se destaca.

O Que Incluir

Portfolio Site Mínimo:
├── Hero Section
│   └── Foto + Nome + Tagline + CTA
├── Sobre Mim
│   └── 2-3 parágrafos + skills
├── Projetos (3-5)
│   └── Cards com screenshot + tech + link
├── Contato
│   └── Email + LinkedIn + GitHub
└── Footer
    └── Copyright + Links sociais

Templates Gratuitos Prontos

1. HTML/CSS/JS puro:

  • HTML5 UP (html5up.net)
  • Free CSS (free-css.com/free-css-templates/page1/portfolio)

2. React:

  • Create React App Portfolio Templates (GitHub)
  • Gatsby Starters (gatsbyjs.com/starters)

3. Next.js:

  • Vercel Templates (vercel.com/templates)

Design: Simples > Complexo

❌ Evite:

  • Animações excessivas
  • Parallax complicado
  • Cores berrantes
  • Fontes ilegíveis
  • Carrossel de projetos (UX ruim)

✅ Prefira:

  • Design limpo e minimalista
  • Tipografia clara (Inter, Poppins, Roboto)
  • Paleta simples (2-3 cores)
  • Grid de projetos (não carrossel)
  • Dark mode (opcional mas legal)

Estratégia de Construção de Portfolio

Timeline de 12 Semanas

Semanas 1-4: Projeto 1 (CRUD Básico)

Semana 1: Planejamento + Setup
- Definir escopo
- Desenhar wireframes
- Setup inicial (CRA, Express, DB)

Semana 2: Funcionalidades Core
- Autenticação
- CRUD da entidade principal
- Validações básicas

Semana 3: UI + Features Extras
- Design com Tailwind
- Filtros e busca
- Responsividade

Semana 4: Polish + Deploy
- Testes
- README completo
- Deploy Vercel + Railway
- Documentar aprendizados

Semanas 5-8: Projeto 2 (API Integration)

Semana 5: Pesquisa + Prototipação
- Escolher API interessante
- Testar endpoints
- Planejar features

Semana 6-7: Desenvolvimento
- Consumir API
- Apresentar dados (gráficos, cards, etc)
- Funcionalidades únicas

Semana 8: Finalização
- Design profissional
- Performance (cache, lazy loading)
- Deploy + README

Semanas 9-12: Projeto 3 (Original/Complexo)

Semana 9: Ideação
- Problema real para resolver
- Validar com usuários potenciais
- Arquitetura detalhada

Semana 10-11: MVP
- Features principais
- Testes com usuários
- Iterações baseadas em feedback

Semana 12: Launch
- Testes completos
- Documentação detalhada
- Deploy production
- Compartilhar no LinkedIn

Estratégia Build in Public

O que é: Construir projetos publicamente, compartilhando progresso

Onde: LinkedIn, Twitter/X, Dev.to

O que postar:

Dia 1 - Anúncio:

"🚀 Começando novo projeto: [Nome]

Vou construir [descrição] usando React + Node.js.

Meta: Terminar em 4 semanas e compartilhar progresso aqui.

Acompanha? 👀"

Durante - Updates (2-3x/semana):

"Dia 5 do projeto [Nome] 💻

Hoje implementei:
✅ Autenticação com JWT
✅ CRUD de usuários
✅ Validação com Zod

Desafio: [problema que enfrentou]
Solução: [como resolveu]

#100DaysOfCode #DevLife"

Final - Launch:

"🎉 4 semanas depois...

Finalizei [Nome do Projeto]!

O que construí:
• [Feature 1]
• [Feature 2]
• [Feature 3]

Stack: React, Node.js, PostgreSQL

🔗 Demo: [link]
💻 Código: [github]

Feedback? 👇"

Por que funciona:

  • Gera engajamento (pessoas acompanham)
  • Accountability (você não abandona público)
  • Network (recrutadores veem proatividade)
  • Portfólio vivo (não só resultado final)

Portfolio Para Diferentes Níveis

Portfolio Júnior (0-1 ano)

Mínimo necessário:

  • 3 projetos completos
  • 1 CRUD full-stack
  • 1 com integração de API
  • 1 original (diferencial seu)
  • README em todos
  • Deploy funcionando
  • Commits consistentes

Foco: Mostrar que você sabe fazer trabalho de júnior (CRUD, consumir API, código limpo)

Portfolio Pleno (1-3 anos)

Esperado:

  • 5+ projetos diversos
  • Pelo menos 1 com escala (muitos usuários)
  • Contribuições open source
  • Testes automatizados
  • CI/CD implementado
  • Arquitetura clara (não espaguete)
  • Performance otimizada

Foco: Mostrar maturidade técnica e decisões arquiteturais

Erros Fatais Que Matam Seu Portfolio

❌ Erro #1: "Em Construção"

Projeto com README: "🚧 Em construção, volte depois"

Problema: Recrutador não volta.

Solução: Só torne público quando estiver 80%+ pronto.

❌ Erro #2: Secrets Commitados

API keys, senhas, tokens no código.

Problema: Mostra despreparo e é risco de segurança.

Solução:

  • Use .env (e adicione ao .gitignore)
  • Variáveis de ambiente no deploy
  • Se já commitou, use git-secrets ou BFG para limpar histórico

❌ Erro #3: Código Comentado em Excesso

// Isso é uma função que soma dois números
function soma(a, b) {
    // Retorna a soma de a e b
    return a + b; // soma
}

Problema: Código óbvio não precisa comentário. Parece iniciante.

Solução: Comente só o não-óbvio (lógica complexa, workarounds, por quês)

❌ Erro #4: Inconsistência de Estilo

Cada arquivo com estilo diferente (tabs vs spaces, aspas simples vs duplas, etc)

Solução:

  • ESLint + Prettier (configuração padronizada)
  • Commit hooks (Husky) para garantir

❌ Erro #5: Projeto Quebrado

Deploy com erros, botões que não funcionam, links mortos.

Problema: Primeira impressão = incompetência.

Solução: Teste TUDO antes de compartilhar. Peça para amigo testar.

❌ Erro #6: Plágio de Tutorial

Código 100% igual ao tutorial sem mencionar.

Problema: Recrutadores experientes reconhecem. Desonesto.

Solução:

  • Mencione no README: "Baseado em [tutorial], mas adicionei [X, Y, Z]"
  • Ou melhor: use tutorial como inspiração, recrie do zero

Checklist Final de Portfolio Profissional

GitHub Profile

[ ] Foto de perfil profissional
[ ] Bio clara e concisa
[ ] Link para portfolio site
[ ] Email visível
[ ] Localização (cidade/país)
[ ] Profile README com estatísticas
[ ] Badges de tecnologias
[ ] Projetos principais fixados (6)
[ ] Atividade recente (commits verdes)

Cada Projeto

[ ] Nome descritivo (não "projeto1")
[ ] Description do repo preenchida
[ ] README completo (seguindo template)
[ ] Screenshot/GIF no README
[ ] Link de deploy funcionando e visível
[ ] Código organizado e limpo
[ ] .gitignore configurado
[ ] Sem secrets commitados
[ ] Responsivo (mobile + desktop)
[ ] Loading states e error handling
[ ] Commits bem descritos
[ ] Topics/tags relevantes

Deploy

[ ] HTTPS ativo (SSL)
[ ] URL personalizada (não random)
[ ] App carrega rápido (< 3s)
[ ] Não quebra em produção
[ ] Logs de erro monitorados
[ ] Analytics (opcional - Google Analytics)

Presença Online

[ ] LinkedIn com link para GitHub
[ ] Portfolio site (se tiver)
[ ] Dev.to ou Medium (artigos - opcional)
[ ] Twitter/X com conteúdo tech (opcional)
[ ] Stack Overflow (respostas - opcional)

Como Usar Seu Portfolio

Na Candidatura

Currículo:

  • Seção "Projetos" em destaque
  • Link direto para deploy + GitHub
  • 1-2 linhas descrevendo cada projeto

LinkedIn:

  • Seção "Projetos" preenchida
  • Posts sobre projetos (build in public)
  • Pin post principal no perfil

Email de candidatura:

Prezados,

Candidato-me à vaga de Desenvolvedor Júnior.

Destaco 3 projetos do meu portfolio que demonstram minhas habilidades:

1. [Nome] - Sistema de [X] com [Y features]
   🔗 Demo: [link] | Código: [github]
   Stack: React, Node.js, PostgreSQL

2. [Nome] - [Descrição curta]
   🔗 Demo: [link] | Código: [github]

3. [Nome] - [Descrição curta]
   🔗 Demo: [link] | Código: [github]

Aguardo retorno!

[Seu Nome]
[LinkedIn] | [GitHub] | [Portfolio]

Na Entrevista

Preparação:

  • Revise cada projeto PROFUNDAMENTE
  • Saiba explicar TODA decisão técnica
  • Prepare apresentação (5-10 min por projeto)
  • Tenha projeto aberto para mostrar

Quando perguntarem "Fale sobre seus projetos":

Estrutura de Resposta:

1. Contexto (20s)
"Construí [nome], um sistema para [problema]. Surgiu de [motivação pessoal]."

2. Desafio Técnico (30s)
"O maior desafio foi [X]. Precisei [decisão técnica] porque [razão]."

3. Resultado (20s)
"O resultado foi [métrica/outcome]. Aprendi [aprendizado principal]."

4. Demo (30s)
"Posso mostrar rapidamente? [abre deploy e mostra feature principal]"

Total: 90 segundos. Conciso e impactante.

Mantendo Portfolio Atualizado

Rotina Mensal

Todo mês:
[ ] 1 commit em projeto existente (melhoria, refactor)
[ ] Atualizar README se necessário
[ ] Adicionar novo aprendizado
[ ] Verificar se deploys estão ok
[ ] Responder issues/comentários no GitHub

A cada 3 meses:
[ ] Novo projeto (ou feature grande em existente)
[ ] Atualizar tech stack (remover obsoleto, adicionar novo)
[ ] Refatorar projeto mais antigo
[ ] Escrever artigo sobre projeto no Dev.to

A cada 6 meses:
[ ] Revisar portfolio completo
[ ] Remover projetos fracos
[ ] Atualizar portfolio site
[ ] Nova foto GitHub se necessário

Evitando "Projeto Morto"

Problema: Último commit há 1 ano = projeto abandonado.

Solução:

  • Marque como "archived" no GitHub (se realmente não vai mexer)
  • Ou faça pequenos updates (atualizar deps, melhorar README, adicionar testes)
  • Mantenha pelo menos 1-2 projetos "ativos"

Casos de Sucesso Reais

Case 1: Marina - Portfolio Levou a 5 Entrevistas

Situação: 6 meses estudando, 0 entrevistas

O que fez:

  1. Criou 3 projetos em 8 semanas
  2. README completo em cada
  3. Portfolio site simples
  4. Postou progresso no LinkedIn

Resultado:

  • Semana 1: 2 mensagens de recrutadores no LinkedIn
  • Semana 2: 3 entrevistas agendadas
  • Semana 4: 2 ofertas (aceitou uma)

Diferencial: Um dos projetos resolvia problema que ela teve na profissão anterior (professora). Recrutador achou único.

Case 2: Pedro - Open Source Abriu Portas

Situação: Bom tecnicamente, mas portfolio fraco

O que fez:

  1. Contribuiu com documentação em 5 projetos open source
  2. Depois evoluiu para bug fixes
  3. Depois para features
  4. 6 meses = 30+ PRs aceitos

Resultado:

  • Maintainer de um projeto o indicou para vaga
  • Contratado sem processo seletivo tradicional
  • Já entrou como pleno (pulou júnior)

Aprendizado: Contribuições open source > projetos solo às vezes

Recursos e Ferramentas

Para Design

  • Figma: Wireframes e mockups
  • Dribbble/Behance: Inspiração de design
  • Coolors: Paletas de cores
  • Unsplash/Pexels: Imagens gratuitas
  • Heroicons/Feather: Ícones

Para README

  • Shields.io: Badges
  • GitHub Readme Stats: Estatísticas do GitHub
  • Carbon: Screenshots bonitos de código
  • Readme.so: Editor de README visual

Para Deploy

  • Vercel/Netlify: Front-end
  • Railway/Render: Back-end
  • Supabase: Banco de dados grátis
  • Cloudinary: Hosting de imagens

Para Qualidade de Código

  • ESLint + Prettier: Formatação
  • Husky: Git hooks
  • SonarCloud: Análise de código
  • Lighthouse: Performance e SEO

Conclusão: Seu Portfolio É Seu Melhor Vendedor

Vou ser direto com você:

Sem portfolio bom, você não consegue emprego tech. Ponto.

Pode ter estudado 2 anos. Pode ter feito bootcamp de R$ 20k. Pode ter diploma. Nada disso importa se você não consegue MOSTRAR que sabe fazer.

Portfolio não é sobre ter 50 projetos. É sobre ter 3-5 projetos que fazem o recrutador pensar:

"Caralho, esse cara sabe o que tá fazendo. Vou chamar pra conversar."

Seu Plano de Ação (Próximos 30 Dias)

Semana 1:

  • [ ] Otimizar GitHub profile (foto, bio, README)
  • [ ] Planejar Projeto 1 (CRUD básico)
  • [ ] Setup inicial

Semana 2-3:

  • [ ] Desenvolver Projeto 1
  • [ ] README completo
  • [ ] Deploy

Semana 4:

  • [ ] Polish do projeto
  • [ ] Testar tudo
  • [ ] Compartilhar no LinkedIn
  • [ ] Começar Projeto 2

Daqui 90 dias:

  • 3 projetos profissionais
  • GitHub ativo
  • Portfolio que impressiona
  • = EMPREGÁVEL

A Pergunta Que Você Precisa Responder

Daqui 3 meses, você quer estar:

A) Ainda "estudando" (sem portfolio)?

Ou...

B) Recebendo mensagens de recrutadores?

A diferença entre A e B não é conhecimento. É ter portfolio que PROVA o conhecimento.

"Todo desenvolvedor empregado tem uma coisa em comum: portfolio que convence."

Agora pare de ler e COMECE SEU PROJETO.

Daqui 1 mês, você agradece.

Boa sorte, futuro dev! 🚀