Pular para conteúdo

Guia de Onboarding

Bem-vindo ao time! Este guia vai ajudá-lo a configurar seu ambiente e fazer sua primeira contribuição.

Semana 1: Setup e Familiarização

Dia 1: Acessos e Ferramentas

Checklist de Acessos

  • Acesso ao GitHub (org: seu-org)
  • Acesso ao AWS Console
  • Acesso ao Slack (canais: #tech, #tech-docs, #rfc-discussions)
  • Credenciais do banco de dados (staging)
  • Acesso ao ambiente de staging
  • Configurar 2FA em todas as contas

Ferramentas Essenciais

Desenvolvimento:

  • Git (v2.x+)
  • Python 3.11+
  • Node.js 20+
  • Docker Desktop
  • VS Code ou IDE de preferência

AWS:

  • AWS CLI v2
  • AWS SAM CLI
  • Configurar AWS credentials

Comunicação:

  • Slack Desktop
  • Zoom ou ferramenta de videochamada
  • Calendário sincronizado

Configuração Inicial

# Configurar Git
git config --global user.name "Seu Nome"
git config --global user.email "seu.email@empresa.com"

# Configurar commit signing (opcional mas recomendado)
git config --global commit.gpgsign true

# Configurar AWS CLI
aws configure
# AWS Access Key ID: [fornecido pelo time]
# AWS Secret Access Key: [fornecido pelo time]
# Default region: us-east-1
# Default output format: json

Dia 2: Clone e Setup de Repositórios

Repositórios Principais

# Criar diretório de trabalho
mkdir -p ~/workspace/empresa
cd ~/workspace/empresa

# Clonar repositórios
git clone git@github.com:seu-org/backend-api.git
git clone git@github.com:seu-org/frontend-web.git
git clone git@github.com:seu-org/infrastructure.git
git clone git@github.com:seu-org/people-tech-docs.git

Setup do Backend (Python/FastAPI)

cd backend-api

# Criar ambiente virtual
python -m venv .venv
source .venv/bin/activate  # Linux/Mac
# ou .venv\Scripts\activate  # Windows

# Instalar dependências
pip install -r requirements.txt
pip install -r requirements-dev.txt

# Copiar arquivo de configuração
cp .env.example .env
# Editar .env com suas configurações locais

# Executar migrations
alembic upgrade head

# Rodar testes
pytest

# Iniciar servidor local
uvicorn app.main:app --reload

Acesse: http://localhost:8000/docs (Swagger UI)

Setup do Frontend (React)

cd ../frontend-web

# Instalar dependências
npm install

# Copiar configuração
cp .env.example .env.local
# Editar .env.local

# Rodar testes
npm test

# Iniciar dev server
npm run dev

Acesse: http://localhost:3000

Dia 3-5: Estudar Arquitetura e Código

Leitura Obrigatória

Explorar o Código

Backend:

cd backend-api

# Estrutura do projeto
tree -L 2 -I '__pycache__|*.pyc|.venv'

# Arquivos importantes
cat app/main.py          # Entry point
cat app/models/          # SQLAlchemy models
cat app/services/        # Business logic
cat app/api/routes/      # Endpoints
cat alembic/versions/    # Database migrations

Frontend:

cd frontend-web

# Estrutura
tree -L 2 -I 'node_modules|build'

# Arquivos importantes
cat src/App.tsx          # Main component
cat src/components/      # React components
cat src/services/        # API clients
cat src/hooks/           # Custom hooks

Pair Programming

  • Agendar sessão de pair programming com desenvolvedor sênior
  • Fazer walkthrough do código principal
  • Entender fluxos críticos da aplicação

Semana 2: Primeira Contribuição

Escolher uma Issue para Iniciantes

  1. Acesse GitHub Issues
  2. Filtre por label good-first-issue
  3. Escolha uma issue e comente que vai trabalhar nela

Seguir o Git Workflow

# Atualizar branch dev
git checkout dev
git pull origin dev

# Criar feature branch
git checkout -b feature/ISSUE-123-minha-primeira-feature

# Fazer alterações...
# Editar arquivos
# Adicionar testes
# Atualizar documentação se necessário

# Rodar testes localmente
pytest  # Backend
npm test  # Frontend

# Commit seguindo Conventional Commits
git add .
git commit -m "feat(module): adicionar funcionalidade X

Implementa ISSUE-123
- Adiciona validação de input
- Adiciona testes unitários
- Atualiza documentação da API"

# Rebase com dev antes de push
git fetch origin
git rebase origin/dev

# Push
git push origin feature/ISSUE-123-minha-primeira-feature

Abrir Pull Request

  1. Acesse GitHub e abra PR para branch dev
  2. Use o template de PR (preencha todas as seções)
  3. Adicione screenshots se for mudança visual
  4. Marque reviewer(s)
  5. Aguarde code review

Code Review

  • Responda comentários de forma construtiva
  • Faça ajustes solicitados
  • Mantenha commits organizados
  • Avise quando estiver pronto para re-review

Após Merge

  • PR merged em dev → Deploy automático para staging
  • Teste sua funcionalidade em staging
  • Se tudo OK, será incluído no próximo deploy para produção

Checklist de 30 Dias

Conhecimento Técnico

  • Compreende a arquitetura Lambda/SQS/SNS
  • Sabe fazer deploy para staging
  • Executou migrations localmente
  • Rodou testes e entende cobertura
  • Conhece principais endpoints da API
  • Entende fluxo de autenticação/autorização
  • Familiarizado com CloudWatch logs

Processos

  • Seguiu Git Workflow corretamente
  • Fez ao menos 1 PR que foi merged
  • Participou de code review (revisor ou autor)
  • Assistiu ao menos 1 reunião RFC
  • Conhece o processo de deploy para produção
  • Sabe onde encontrar runbooks operacionais

Integração com Time

  • Conheceu todos os membros do time
  • Participou de daily stand-up
  • Fez par programming com ao menos 2 pessoas
  • Apresentou-se em reunião de time
  • Sabe a quem recorrer para cada tipo de dúvida

Recursos e Contatos

Documentação

Pessoas Chave

Papel Nome Slack Responsabilidade
Tech Lead [Nome] @user Arquitetura, decisões técnicas
Backend Lead [Nome] @user Python, FastAPI, APIs
Frontend Lead [Nome] @user React, UI/UX
DevOps [Nome] @user AWS, CI/CD, infraestrutura
QA [Nome] @user Testes, qualidade

Canais Slack

  • #tech - Discussões técnicas gerais
  • #tech-docs - Sobre documentação
  • #rfc-discussions - Discussão de RFCs
  • #deploys - Notificações de deploy
  • #incidents - Incidentes e problemas

Reuniões Regulares

  • Daily Stand-up: Segunda a Sexta, 9h30 (15 min)
  • Sprint Planning: Segunda (início de sprint), 10h (1h)
  • Reunião RFC: 1ª e 3ª Sexta do mês, 14h (2h)
  • Retrospectiva: Última Sexta do mês, 16h (1h)

Troubleshooting Comum

Erro ao rodar migrations

# Verificar conexão com banco
psql -h localhost -U postgres -d app_db

# Reset completo (CUIDADO: apaga dados)
alembic downgrade base
alembic upgrade head

Docker não inicia

# Linux: adicionar usuário ao grupo docker
sudo usermod -aG docker $USER
# Logout e login novamente

# Verificar Docker
docker --version
docker ps

AWS CLI não autenticado

# Verificar credenciais
aws sts get-caller-identity

# Reconfigurar se necessário
aws configure

Testes falhando

# Backend: limpar cache e reinstalar
rm -rf .pytest_cache __pycache__
pip install -r requirements-dev.txt
pytest -v

# Frontend: limpar node_modules
rm -rf node_modules package-lock.json
npm install
npm test

Feedback

Este guia está sempre evoluindo! Se você:

  • Encontrou algo confuso ou desatualizado
  • Tem sugestão de melhoria
  • Achou que faltou alguma informação importante

Por favor:

  1. Abra uma issue no GitHub
  2. Ou faça um PR diretamente com sua sugestão
  3. Ou fale no canal #tech-docs no Slack

Sua experiência como novo membro é valiosa para melhorar este guia!

Próximos Passos

Depois de completar o onboarding básico:

Bem-vindo ao time! 🚀