Entrevistas técnicas: formatos e como se preparar¶
Esta página mapeia como são os processos seletivos técnicos e como treinar para cada etapa. As perguntas de conteúdo ficam nas páginas de tema (veja os links ao final). Para a parte comportamental, consulte Comportamento em entrevistas e Perguntas de RH.
Não existe formato padrão
Cada empresa monta o seu processo. Antes era comum uma única entrevista técnica; hoje é frequente haver até seis etapas (do desafio de código à apresentação de system design), que podem durar dias ou semanas, com várias fases eliminatórias. Pergunte ao recrutador quais etapas existem para não se preparar só para uma delas.
Visão geral das etapas¶
flowchart LR
A["Triagem (RH)"] --> B["Projeto prático (take-home)"]
B --> C["Entrevista técnica conversacional"]
C --> D["Live coding / algoritmos"]
D --> E["System design (sênior+)"]
E --> F["Entrevista comportamental / gestor"]
F --> G["Proposta"]
(Sequência ilustrativa: a ordem e a presença de cada etapa variam.)
| Etapa | O que avalia | Como se preparar |
|---|---|---|
| Projeto prático (take-home) | Atendimento aos requisitos, testes, organização do código, boas práticas e deploy | Pratique projetos completos; entregue por pull request no GitHub; conteinerize (Docker) e escreva README e testes |
| Técnica conversacional | Conhecimento de linguagem, banco, arquitetura e como você explica decisões | Revise os fundamentos da sua stack e explique os projetos do currículo (decisões, desafios, resultados) |
| Live coding | Raciocínio, depuração e comunicação em tempo real (em IDE, plataforma online, às vezes até em bloco de notas) | Pratique resolver problemas falando em voz alta; grave-se explicando a solução como numa aula |
| Algoritmos | Correção da solução, estruturas de dados, complexidade e debugging | Treino constante em plataformas (HackerRank, LeetCode, GeeksforGeeks) |
| System design | Decisões em cenários complexos, escalabilidade, desempenho, segurança, confiabilidade, adaptação a mudanças | Estude os blocos básicos e desenhe soluções em voz alta |
| Comportamental | Cultura, comunicação, colaboração, motivação | Pesquise a empresa e prepare exemplos concretos |
Live coding¶
O avaliador quer ver como você pensa, não só o resultado. Mesmo bons profissionais cometem erros sob olhar atento e pressão moderada.
- Comunique o raciocínio continuamente: reformule o problema, faça perguntas, diga o plano antes de codificar, explique escolhas e trade-offs.
- Domine estruturas de dados e a linguagem que você escolher (use a que se sente mais à vontade).
- Complemento: comece por uma solução simples e correta, teste com exemplos (inclusive casos de borda), só depois otimize; se travar, verbalize o que sabe e peça uma dica.
Entrevistas de algoritmos¶
Comuns em grandes empresas (as "FAANG": Meta, Amazon, Apple, Netflix, Google). Avaliam:
- A solução: funciona para todos os casos e por que foi escolhida.
- Estruturas de dados e algoritmos: complexidade de tempo e espaço (Big O), arrays, grafos, busca binária, heaps, árvores.
- Comunicação: explicar o raciocínio enquanto resolve.
- Debugging: achar e corrigir erros.
Estratégia: primeiro uma resposta funcional, depois preocupação com casos extremos e só então refatoração/otimização. Os problemas independem de linguagem; use uma de alto nível e fácil (como Python) se ajudar. Conteúdo em Estrutura de Dados (listas, pilhas, filas, árvores, grafos, heaps, tabelas de dispersão, recursividade e a complexidade de cada uma) e em Python.
Entrevista de system design¶
Aplicada em geral a partir do nível sênior ou arquiteto. Avalia como você aborda um problema de desenho de sistema, decide em situações complexas e se adapta a mudanças de requisitos, considerando escalabilidade, desempenho, segurança e confiabilidade.
Estude os tópicos separadamente antes de juntar tudo:
| Tópico | Onde estudar nesta base |
|---|---|
| Balanceamento de carga | SRE: escalabilidade e Spring: escalabilidade horizontal |
| Cache (leitura e escrita) | Spring: estratégias de cache |
| DNS e CDN | Redes e Sistemas Operacionais |
| Bancos SQL e NoSQL, teorema CAP | SQL e NoSQL |
| Mensageria e eventos | Event-Driven Architecture |
| Armazenamento de objetos (blob store) | Nuvem |
| Arquitetura de aplicação | Padrões arquiteturais, Microsserviços, DDD |
Como treinar: assista a conteúdos de system design, desenhe a solução no papel ou em uma ferramenta de diagramas (ex.: draw.io), explique a um colega e colete feedback para achar falhas. Complemento — roteiro de resposta: (1) esclareça requisitos funcionais e não funcionais e a escala esperada; (2) estime carga e armazenamento; (3) desenhe a visão geral (clientes → balanceador → serviços → dados); (4) aprofunde nos gargalos; (5) discuta trade-offs, falhas e evolução.
Projeto prático (take-home)¶
A empresa envia um enunciado com regras de negócio e um prazo (geralmente cerca de uma semana); você entrega no GitHub, normalmente por pull request. Pode ser eliminatório. Avaliam se atende aos requisitos e se está bem testado; ajuda executar em contêiner, o que mostra boas práticas de deployment. Ter praticado projetos pessoais reduz o tempo e as surpresas.
Complemento — checklist: README com decisões e como rodar, testes automatizados, tratamento de
erros e validações, histórico de commits limpo, docker compose up funcionando, sem segredos no
repositório, não ultrapassar o escopo pedido.
Preparação comportamental (resumo)¶
- Pesquise a empresa: modelo de negócio, valores e cultura.
- Tenha exemplos concretos de como suas contribuições geraram resultados.
- Seja honesto(a) sobre os motivos de buscar novas oportunidades, focando no positivo da experiência anterior.
- Demonstre interesse genuíno: pergunte sobre o negócio, o fluxo de trabalho e as metodologias.
- Esteja pronto(a) para explicar em detalhe cada projeto do currículo e do GitHub.
- Equilibre competência técnica e habilidades interpessoais.
Detalhes e roteiros de resposta em Comportamento em entrevistas.
Perguntas técnicas frequentes por tema¶
| Tema | Onde encontrar respostas e resumos de entrevista |
|---|---|
| Orientação a objetos, SOLID, padrões | OO, Boas práticas, Padrões |
| Java e JVM | Java, Java Avançado |
| Python | Python (tabela de perguntas) |
| Go | Go (tabela de perguntas) |
| Linux e infraestrutura | Sistemas Operacionais (tabela de perguntas) |
| APIs, HTTP, REST, autenticação | Backend, Segurança |
| Testes | Qualidade |
| Bancos de dados | SQL, Modelagem, NoSQL |
| Observabilidade, incidentes, SLO | SRE |
| Agilidade e requisitos | Gestão de projetos, Requisitos |