System Design Para Entrevistas: Guia Para Devs Brasileiros Que Querem Nível Sênior
Como se preparar para entrevistas de system design em empresas americanas: framework de resposta, os sistemas mais cobrados (URL shortener, Twitter, Netflix), trade-offs que impressionam e recursos gratuitos em português.
System Design: O Filtro Para Nível Sênior em Empresas Americanas
Enquanto LeetCode testa algoritmos, System Design testa se você pensa como um engenheiro sênior. Nenhuma empresa americana vai colocar um dev Sênior+ sem avaliar como ele pensa sobre arquitetura, escalabilidade e trade-offs.
Para devs brasileiros mirando posições de R$ 40.000-80.000+/mês em empresas americanas, dominar System Design é obrigatório.
O Framework RESHADED Para Qualquer System Design
Toda resposta de system design deve cobrir:
- R — Requirements: Clarify functional e non-functional requirements (DAU, QPS, latência)
- E — Estimation: Back-of-envelope calculations (storage, bandwidth, QPS)
- S — Storage Schema: Como estruturar os dados (SQL vs NoSQL, schema)
- H — High-Level Design: Diagrama de componentes principais
- A — API Design: Endpoints principais da solução
- D — Deep Dive: Detalhar componentes críticos (o entrevistador vai guiar)
- E — Extension / Edge Cases: Consistência eventual, falhas, monitoramento
- D — Discussion: Trade-offs das decisões tomadas
Os 10 Sistemas Mais Cobrados em Entrevistas
1. URL Shortener (tipo bit.ly)
Conceitos: hashing, redirecionamento HTTP 301/302, cache (Redis), banco de dados para key-value, analytics assíncrono.
Estimativa típica: 100M URLs/dia = ~1.150 writes/second, 10x reads = 11.500 reads/second.
2. Feed de Redes Sociais (tipo Twitter/Instagram)
Conceitos: fanout on write vs fanout on read, sharding de timeline, cache de feeds populares, CDN para mídia.
Decisão chave: celebridades com milhões de seguidores não podem usar fanout on write — hybrid approach.
3. Sistema de Armazenamento de Arquivos (tipo Dropbox/Google Drive)
Conceitos: chunking de arquivos, deduplicação, versionamento, sync client, object storage (S3), CDN.
4. Sistema de Video Streaming (tipo Netflix/YouTube)
Conceitos: video encoding (multiple bitrates), adaptive bitrate streaming (HLS/DASH), CDN edge servers, content recommendation.
Encontre vagas internacionais que combinam com você
Alertas personalizados por stack, salário e empresa. Grátis para começar.
5. Chat em Tempo Real (tipo WhatsApp/Slack)
Conceitos: WebSockets vs Long Polling vs SSE, message persistence, delivery receipts, offline message queue.
6. Rate Limiter
Conceitos: algoritmos (Token Bucket, Leaky Bucket, Sliding Window), distributed rate limiting, Redis para contadores.
7. Sistema de Busca (tipo Google Search)
Conceitos: web crawler, inverted index, ranking (PageRank simplificado), indexação incremental.
8. Notification System
Conceitos: push notifications (APNs, FCM), email delivery, SMS, fanout com filas (Kafka/SQS), retry logic.
9. Ride-Sharing (tipo Uber)
Conceitos: geohashing para proximidade, matching algorítmico, location updates em tempo real, surge pricing.
10. Sistema de Pagamentos
Conceitos: idempotency, transações distribuídas, 2-phase commit, event sourcing, reconciliação.
Trade-offs Que Impressionam Entrevistadores
Demonstrar que você entende trade-offs é o que diferencia candidatos Senior de Pleno:
- SQL vs NoSQL: SQL para consistency e relações complexas; NoSQL para escala horizontal e schema flexível
- Consistency vs Availability: CAP theorem — em caso de partição, qual você prioriza?
- Cache invalidation: Write-through vs write-back vs write-around — cada um com seus trade-offs
- Sync vs Async: Operações síncronas para simplicidade, assíncronas para throughput e resiliência
- Push vs Pull: Fanout on write (push) para reads rápidos; fanout on read (pull) para writes rápidos
Recursos Gratuitos Para Estudar
- System Design Primer (GitHub): github.com/donnemartin/system-design-primer — melhor recurso gratuito, em inglês
- ByteByteGo Newsletter: bytebytego.substack.com — explicações visuais semanais
- Excalidraw: Para desenhar diagramas durante entrevistas online
- YouTube: Gaurav Sen, System Design Interview, Tech Dummies: Vídeos gratuitos explicando sistemas famosos
Como Praticar System Design
- Escolha um sistema (comece com URL shortener)
- Tente desenhar a solução em 45 minutos sem ver referências
- Compare com soluções online e identifique gaps
- Pratique explicar sua solução em voz alta (fundamental para a entrevista)
- Faça mock interviews com outros devs ou com plataformas como Pramp
Prepare-se Para Explicar em Inglês
Saber o conteúdo técnico é necessário mas não suficiente. Você precisa explicar sua solução claramente em inglês, fazer as perguntas certas para clarificar requisitos e discutir trade-offs articuladamente. A VagaNaGringa tem módulo de prática de inglês técnico especialmente para contexto de entrevistas de system design.
Prepare-se para vagas internacionais com IA
Começar Gratuitamente