Skip to content

Instantly share code, notes, and snippets.

@vmattos
Last active September 8, 2025 17:22
Show Gist options
  • Select an option

  • Save vmattos/27a897c923f00ed76585110893868cfe to your computer and use it in GitHub Desktop.

Select an option

Save vmattos/27a897c923f00ed76585110893868cfe to your computer and use it in GitHub Desktop.
Senior SWE Prep

Guia Completo de Preparação para Entrevistas de Software Engineer Sênior


1. Algoritmos & Estruturas de Dados

Objetivo: Resolver problemas técnicos com clareza, raciocínio estruturado e justificação de escolhas.

Recursos recomendados:

  • Leetcode: arrays, hashtables, DFS/BFS, algoritmos básicos

  • Blind 75 playlists:

Princípios importantes:

  • Explique o raciocínio ANTES do código

    • Use comentários detalhando: estratégia, passos, estruturas de dados, alternativas e justificativas

    • Exemplo de bloco de comentário:

      /*
        Estratégia:
        1. Iterar sobre o array e armazenar contagens em um hashmap.
        2. Checar condição X para cada elemento.
        3. Retornar resultado.
        Complexidade:
        - Tempo: O(n)
        - Espaço: O(n)
        Justificativa: hashmap usado para lookup rápido em O(1)
      */
  • Complexidade de tempo e espaço (Big O) deve ser sempre analisada e explicada

  • Priorize clareza e comunicação, mais importante que código perfeito

Plano semanal:

  • Segunda a sexta: 1h–1h30min resolvendo 2–3 problemas por dia
  • Sábado: Revisão das soluções mais eficientes
  • Domingo: Mock interview simulando pressão de tempo

2. Frontend (quando aplicável)

Objetivo: Demonstrar domínio técnico, boas práticas, performance e escalabilidade no frontend.

Recursos recomendados:

Tópicos importantes:

  • DOM, eventos, CSS avançado, layout responsivo
  • JavaScript avançado: closures, async/await, promises, event loop
  • Frameworks: React, Angular, Vue (ciclo de vida, state management)
  • Performance: lazy loading, code splitting, memoization

Prática recomendada:

  • Resolver problemas de JS no LearnersBucket
  • Criar mini-projetos para reforçar boas práticas e escalabilidade
  • Explicar decisões técnicas durante implementação

Plano semanal:

  • 2 dias da semana (ex.: terça e quinta), 1h30min cada
  • Revisão de conceitos + implementação prática

3. System Design & Arquitetura (Crítico para Sênior)

Objetivo: Projetar sistemas escaláveis, eficientes e financeiramente viáveis, justificando cada decisão.

Princípios fundamentais:

  1. Esclarecer requisitos funcionais e não funcionais

    • Perguntar sobre funcionalidades obrigatórias e opcionais
    • SLA, latência máxima, throughput, consistência
    • Cenários de falha e tolerância a erros
  2. Estimar escala do sistema

    • DAU/MAU
    • Requests por segundo (RPS)
    • Tamanho médio de requests (KB)
    • Estimativa de armazenamento
  3. Modelar entidades e APIs (flexível)

    • Não é necessário ERD formal

    • Explicar claramente escolhas de modelagem:

      • Quais entidades existem e por quê
      • Relações entre entidades
      • Como cada entidade suporta os requisitos do sistema
    • Definir endpoints e contratos de API claros e versionados

  4. Projetar para escalabilidade e custo

    • Escalabilidade horizontal e vertical
    • Caching estratégico (Redis, Memcached)
    • Fila/mensageria para desacoplar serviços
    • Escolha de banco: SQL vs NoSQL (justificar trade-offs)
    • Avaliar custo vs benefício: soluções robustas, mas realistas
  5. Identificação e mitigação de gargalos

    • Pontos de contenção: DB, rede, serviço crítico
    • Estratégias: sharding, replicação, cache, fila assíncrona
    • Monitoramento e alertas para detectar problemas
  6. Patterns de sistemas distribuídos

    • Event Sourcing: armazenar mudanças como eventos para replay e auditoria
    • SAGA Pattern: gerenciar transações distribuídas assincronamente, garantindo consistência eventual
    • Outbox Pattern: publicar eventos de forma confiável junto a operações de banco
    • Command Pattern: separar comandos de consultas, organizar lógica de negócio, desacoplar serviços
    • Mensageria/Queues: desacoplar produtores e consumidores, lidar com picos de tráfego
  7. Justificar todas as decisões

    • “Por que usar Redis aqui?”
    • “Por que guardar este dado?”
    • “Por que banco X e não banco Y?”
    • “Por que mensageria síncrona vs assíncrona?”
  8. Containers e Orquestração

    • Docker: containers isolados e portáveis
    • Kubernetes: deploy escalável, health checks, rolling updates

Recursos recomendados:

  • Tech Interview Handbook – System Design
  • Youtube: arquitetura de sistemas reais (Netflix, Uber, YouTube, WhatsApp)

Plano semanal:

  • 2 dias na semana (ex.: quarta e sexta, 1h–1h30min)

    • 30 min teoria (patterns, trade-offs)
    • 30–60 min prática: projetar sistemas, explicar modelagem e justificativas

Dicas de preparação sênior:

  • Começar do requisito → processamento → armazenamento → resposta
  • Explicar raciocínio de modelagem, trade-offs técnicos e financeiros
  • Pensar em escalabilidade futura, sem exagerar recursos

4. Cloud, CI/CD, Containers

Objetivo: Demonstrar conhecimento de deploy, infraestrutura e manutenção de sistemas em produção

Tópicos:

  • Cloud (AWS): EC2, S3, Lambda, RDS, IAM
  • CI/CD: pipelines, testes automatizados, deploy contínuo
  • Containers: Docker
  • Orquestração: Kubernetes – escalabilidade, health checks, rolling updates

Plano semanal:

  • Integrar no estudo de System Design
  • Assistir vídeos práticos e criar pequenos setups locais com Docker/K8s

5. Behavioral / Leadership

Objetivo: Demonstrar maturidade, comunicação, liderança técnica e colaboração

Tópicos importantes:

  • Experiência liderando projetos ou times
  • Comunicação clara de decisões técnicas
  • Mentoria e onboarding de membros juniores
  • Resolução de conflitos e tomada de decisão sob pressão

Estratégia:

  • Usar framework STAR (Situation, Task, Action, Result)
  • Preparar 3–5 histórias bem estruturadas

6. Estratégia de Estudo Semanal

Dia Atividade
Segunda Leetcode (arrays, hashtable) – explicar raciocínio, analisar Big O
Terça Frontend: JS + Handbook, mini-projetos
Quarta System Design: padrões, microservices, Docker/K8s
Quinta Leetcode (DFS/BFS), Blind 75, revisão soluções
Sexta Cloud + CI/CD + mock interview (algoritmo + behavioral)
Sábado Revisão semanal + mock interview completo (algoritmo + system design + behavioral)
Domingo CV review + histórias behavioral + planejamento próxima semana

7. Dicas finais para Sênior

  • Comunicação clara: explique raciocínio, trade-offs e justificativas
  • Priorize System Design e arquitetura mais do que algoritmos
  • Justifique cada escolha técnica, inclusive financeira
  • Revise CV e histórias de liderança antes da entrevista
  • Pratique diagramas e APIs, mas foco no raciocínio e na escalabilidade

8. Dicas para Entrevistas (Soft Skills e Estratégia)

Objetivo: Maximizar impacto do candidato, demonstrando resultados concretos e clareza na comunicação.

1. Framework STAR

  • S – Situation: descreva a situação ou contexto do desafio
  • T – Task: explique a tarefa ou objetivo específico
  • A – Action: detalhe as ações que você tomou, incluindo decisões técnicas
  • R – Result: mostre os resultados obtidos, sempre que possível com métricas concretas

Exemplo:

  • Ao explicar um projeto de microserviço:

    • S: Sistema enfrentava latência alta em peak traffic
    • T: Reduzir latência em 50%
    • A: Introduzi caching com Redis, refatorei queries e paralelizei requests
    • R: Redução de latência de 400ms para 150ms, aumentando throughput em 2x

2. Métricas no CV

  • Inclua resultados quantitativos sempre que possível

  • Exemplos:

    • “Reduzi tempo de build do CI/CD em 30%”
    • “Aumentei throughput de microserviço em 2x, atendendo 10k RPS”
    • “Liderei equipe de 5 pessoas, entregando projeto 2 semanas antes do prazo”
  • Métricas demonstram impacto real e mensurável, impressionando recrutadores sênior

3. Comunicação na Entrevista

  • Explique trade-offs e justificativas de todas as decisões técnicas
  • Use analogias ou diagramas simples para facilitar compreensão
  • Evite detalhes de baixo nível desnecessários, foque em impacto e raciocínio

4. Preparação prática

  • Ensaiar respostas STAR para 3–5 histórias profissionais
  • Revisar CV e anotar métricas relevantes
  • Durante mock interviews, pratique explicação de escolhas técnicas e impactos medidos

Extra

Parser de CV: https://www.open-resume.com/

Use-o para garantir que ferramentas de IA entendam seu CV corretamente

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment