System Design Interview: Guia Completo para Devs Brasileiros Passarem em Big Techs
A entrevista de System Design é a principal barreira para devs brasileiros em processos seletivos de Big Techs americanas. Este guia ensina o framework correto, os conceitos essenciais e como estruturar suas respostas para passar nas entrevistas do Google, Amazon, Meta e similares.
System Design Interview: Guia Completo para Devs Brasileiros Passarem em Big Techs
A entrevista de System Design é a etapa que mais elimina devs brasileiros em processos seletivos de empresas americanas — não por falta de conhecimento técnico, mas por não saber como estruturar e comunicar o raciocínio. Diferente do LeetCode (onde há uma resposta certa), o System Design é uma conversa aberta onde o entrevistador quer ver como você pensa, quais trade-offs você considera e como você lida com ambiguidade. Este guia te dá o framework e os conceitos para se sair bem.
Para Que Nível de Cargo é Cobrado
Entendendo quando você vai enfrentar isso:
- Junior / SDE I: Geralmente não cobra System Design. Foco em algoritmos e coding.
- Mid-level / SDE II: System Design básico pode aparecer — design de APIs simples, componentes individuais.
- Senior / SDE III: System Design obrigatório. Esperado que você design sistemas distribuídos completos.
- Staff / Principal: System Design profundo com foco em trade-offs e liderança técnica.
O Framework em 6 Etapas
Use este framework em toda entrevista de System Design. Ele demonstra raciocínio estruturado e cobre os pontos que o entrevistador quer ver.
Etapa 1: Clarificar os Requisitos (5 minutos)
Nunca comece a desenhar antes de entender o escopo. Pergunte:
- "Quantos usuários ativos esperamos? (1 milhão? 100 milhões?)"
- "Qual é o caso de uso principal que precisamos otimizar?"
- "Há requisitos de latência? (ex: resposta em menos de 100ms)"
- "O sistema precisa ser global ou apenas para uma região?"
- "Quais são os requisitos de consistência? (eventual consistency é aceitável?)"
Etapa 2: Estimar a Escala (3 minutos)
Faça cálculos aproximados em voz alta. Entrevistadores adoram ver engenheiros que pensam quantitativamente:
- 10M usuários × 10 requests/dia = 100M requests/dia = ~1.200 RPS médio
- Com pico de 3x: ~3.600 RPS de pico
- Se cada request gera 1KB de dados: 3.600 KB/s = ~3,5 MB/s de throughput
Etapa 3: Design de Alto Nível (10 minutos)
Desenhe o sistema no nível macro — clientes, servidores, bancos de dados, CDN. Não entre em detalhes ainda. Mostre o fluxo de dados para o caso de uso principal.
Etapa 4: Deep Dive nos Componentes Críticos (15 minutos)
Agora aprofunde nos componentes mais complexos ou que o entrevistador mostrar interesse. Explore alternativas e trade-offs.
Etapa 5: Identificar e Resolver Bottlenecks (5 minutos)
Pergunte-se: "O que quebra primeiro quando o tráfego 10x?" Mostre como você mitigaria os pontos de falha.
Encontre vagas internacionais que combinam com você
Alertas personalizados por stack, salário e empresa. Grátis para começar.
Etapa 6: Resumir e Abrir para Perguntas (2 minutos)
Recapitule as decisões principais e os trade-offs que você fez. Pergunte se há algum aspecto que o entrevistador quer explorar mais.
Conceitos Fundamentais que Você Precisa Dominar
Escalabilidade
- Horizontal scaling: Adicionar mais servidores (scale out) vs. vertical scaling (upgrade do servidor)
- Load balancers: Round-robin, least connections, consistent hashing
- Stateless services: Por que é importante para escalabilidade horizontal
Banco de Dados
- SQL vs NoSQL: Quando usar cada um (não há resposta universal)
- Sharding: Horizontal partitioning por user_id, geo, etc.
- Replication: Primary-replica para leitura escalável
- CAP Theorem: Consistency, Availability, Partition Tolerance — só 2 de 3
- Indexing: B-Tree, hash indexes, composite indexes, quando evitar
Caching
- Cache aside, write-through, write-back: Cada padrão tem seu caso de uso
- Eviction policies: LRU, LFU, TTL
- Cache invalidation: O problema mais difícil em sistemas distribuídos
- CDN: Para ativos estáticos e conteúdo geográfico
Mensageria e Filas
- Quando usar filas: Desacoplamento, processamento assíncrono, rate limiting
- Kafka vs RabbitMQ vs SQS: Trade-offs de cada um
- At-least-once vs exactly-once delivery
Quer praticar System Design interviews com feedback em português? A VagaNaGringa tem simulações de mock interview de System Design com IA, cobrindo os casos mais frequentes em Big Techs. Experimente grátis e veja onde você precisa melhorar.
Os 5 Problemas de System Design Mais Cobrados
1. URL Shortener (tipo bit.ly)
Cobre: hash functions, redirecionamentos HTTP, alta leitura vs. baixa escrita, analytics de clicks.
2. Feed de Notícias (tipo Twitter/Instagram)
Cobre: fan-out vs. pull model, ranking de conteúdo, cache de feeds, real-time updates.
3. Sistema de Chat (tipo WhatsApp)
Cobre: WebSockets, entrega de mensagens, presença online, grupos grandes, storage de mídia.
4. Rate Limiter
Cobre: algoritmos (token bucket, sliding window), distribuição entre instâncias, Redis para estado compartilhado.
5. Serviço de Armazenamento de Arquivos (tipo Google Drive)
Cobre: chunking, deduplication, upload resumível, metadados vs. dados, CDN.
Erros Mais Comuns de Devs Brasileiros
- Começar a desenhar antes de clarificar: Sempre pergunte os requisitos primeiro
- Falar em silêncio: Verbalize seu raciocínio — o entrevistador quer ouvir como você pensa
- Não considerar falhas: Sempre mencione o que acontece se um componente cair
- Over-engineering desde o início: Comece simples, adicione complexidade conforme necessário
- Ignorar números: Justifique suas escolhas com estimativas quantitativas
Para complementar sua preparação, estude também algoritmos com nosso guia de LeetCode para entrevistas na gringa e veja como empresas americanas aplicam testes técnicos no artigo sobre take-home tests.
Prepare-se para vagas internacionais com IA
Começar Gratuitamente