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
- Architecture Overview
- Git Workflow - IMPORTANTE
- RFC Process - Como tomamos decisões
- Testing Strategy
- RFCs Aprovadas: RFC-001, RFC-002
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
- Acesse GitHub Issues
- Filtre por label
good-first-issue - 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
- Acesse GitHub e abra PR para branch
dev - Use o template de PR (preencha todas as seções)
- Adicione screenshots se for mudança visual
- Marque reviewer(s)
- 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
- Este site (People Tech Docs)
- Swagger UI - APIs
- Architecture Diagrams - Diagramas
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
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:
- Abra uma issue no GitHub
- Ou faça um PR diretamente com sua sugestão
- 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:
- Team Agreements - Cultura e acordos do time
- Coding Standards - Padrões de código
- Testing Guides - Aprofundar em testes
- CI/CD Pipeline - Entender pipelines
Bem-vindo ao time! 🚀