Todos os artigos
Entrevista Técnica

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.

Alexandre Queiroz29 de março de 202621 leituras
Compartilhar:LinkedInXWhatsApp

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:

  1. R — Requirements: Clarify functional e non-functional requirements (DAU, QPS, latência)
  2. E — Estimation: Back-of-envelope calculations (storage, bandwidth, QPS)
  3. S — Storage Schema: Como estruturar os dados (SQL vs NoSQL, schema)
  4. H — High-Level Design: Diagrama de componentes principais
  5. A — API Design: Endpoints principais da solução
  6. D — Deep Dive: Detalhar componentes críticos (o entrevistador vai guiar)
  7. E — Extension / Edge Cases: Consistência eventual, falhas, monitoramento
  8. 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.

Criar conta grátis →

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

  1. Escolha um sistema (comece com URL shortener)
  2. Tente desenhar a solução em 45 minutos sem ver referências
  3. Compare com soluções online e identifique gaps
  4. Pratique explicar sua solução em voz alta (fundamental para a entrevista)
  5. 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
#system design#entrevista senior#arquitetura de sistemas#Big Tech#dev brasileiro