Modeling & SQL
A entrevista é uma troca. Não esperamos respostas perfeitas, mas sim clareza de raciocínio, boas escolhas e uma atitude construtiva. Aqui vão dicas valiosas para mandar bem:
-
💙 O que esperamos:
Em uma entrevista de uma hora de duração, você participará de um exercício prático ao vivo sobre SQL e modelagem de dados. Queremos conhecer a sua experiência e ver como você aplica seus conhecimentos no dia a dia.
-
Como se preparar: Modeling & SQL
- Pense de forma crítica: Esteja preparado para fazer perguntas relevantes para coletar mais informações sobre o contexto apresentado. Isso o ajudará a construir um modelo mais completo e adequado.
- Conheça os tipos de modelagem de dados: Revise os diferentes tipos de modelagem de dados (por exemplo, transacional vs. dimensional) e quando cada um é mais apropriado. Pense em exemplos práticos de onde você aplicaria cada tipo.
- Fundamentos de modelagem dimensional: Se familiarizar com conceitos de modelagem dimensional, como tabelas de fato e dimensão, pode ser útil. Pense em como você construiria um modelo que responda a diversas perguntas de negócio.
- Validação do modelo: Pratique como você validaria se o modelo de dados que você criar é capaz de responder às perguntas de negócio que lhe forem apresentadas. A capacidade de garantir que seu modelo atende aos requisitos é crucial.
- Flexibilidade e evolução: Considere como seu modelo pode ser flexível para acomodar novas informações ou mudanças nos requisitos de negócio.
- Código SQL: O teste avaliará sua capacidade de utilizar código para responder a perguntas de negócio. Recomendamos focar na revisão de funções de agregação e funções de janela.
-
📌 Checklist – Modeling & SQL
Quer garantir que não esqueceu de nada? Use essa checklist para guiar sua abordagem:
✅ Revisei as principais funções de SQL
✅ Consigo fazer perguntas relevantes para coletar mais informações.
✅ Conheço os tipos de modelagem de dados e sei quando usá-los.
✅ Entendo conceitos de tabelas de fato e dimensão.
✅ Sei como validar se meu modelo atende aos requisitos de negócio.
✅ Consigo pensar na flexibilidade e evolução de um modelo. -
📑Materiais de apoio – Modeling & SQL
- Treine suas habilidades em SQL e relembre as principais funções;
- Treine com a ferramenta utilizada para a entrevista;
- The Data Warehouse Toolkit – Ralph Kimball
- Fundamentals of Data Engineering – Joe Reis and Matt Housley
Coding
A entrevista é uma troca. Não esperamos respostas perfeitas, mas sim clareza de raciocínio, boas escolhas e uma atitude construtiva. Aqui vão dicas valiosas para mandar bem:
-
💙 O que esperamos:
Em uma entrevista de aproximadamente uma hora de duração, você precisará usar algoritmos e estruturas de dados para resolver um ou mais problemas de programação. Com base no seu desempenho, você poderá avançar para a próxima etapa.
-
Como se preparar – Coding
- Linguagens de Programação: Esperamos que você se sinta à vontade com Python. Você deve conhecer Design Orientado a Objetos e saber como testar seu código.
- Estruturas de Dados: Procure familiarizar-se com arrays, listas encadeadas, pilhas, filas, conjuntos (sets), mapas (maps), árvores e grafos. Você deve saber como usá-los na sua linguagem de programação de escolha, bem como os algoritmos que combinam bem com essas estruturas.
- Complexidade: Esperamos que você seja capaz de raciocinar sobre a complexidade de tempo e espaço de um algoritmo, e como você pode melhorá-la. Você também deve estar familiarizado(a) com a notação Big-O.
- Ordenação (Sorting): Tenha uma ideia básica dos algoritmos de ordenação comuns, como insertion sort, quicksort e mergesort.
- Recursão: Muitos problemas exigem recursão ou podem ser resolvidos mais facilmente com o uso dela. Esteja preparado(a) para utilizá-la se a necessidade surgir.
- Correção: Você usará um IDE online com recursos básicos, como preenchimento de código e destaque de sintaxe, além da capacidade de executar e testar seu código. Aproveite esses recursos!
-
📌 Checklist – Coding
Quer garantir que não esqueceu de nada? Use essa checklist para guiar sua abordagem:
✅ Estou à vontade com uma linguagem de programação e sei testar meu código.
✅ Conheço as principais estruturas de dados e sei seus algoritmos.
✅ Consigo raciocinar sobre a complexidade de tempo e espaço de um algoritmo.
✅ Revisei os algoritmos de ordenação e recursão.
✅ Sei usar o IDE online e seus recursos básicos. -
System Design
A entrevista é uma troca. Não esperamos respostas perfeitas, mas sim clareza de raciocínio, boas escolhas e uma atitude construtiva. Aqui vão dicas valiosas para mandar bem:
-
💙 O que esperamos:
Em uma entrevista de aproximadamente uma hora de duração, você será solicitado(a) a contar sobre seus projetos anteriores e demonstrar suas habilidades técnicas com foco em arquitetura de dados. Isso inclui um aprofundamento na construção de pipelines e nas ferramentas utilizadas para criá-los.
-
Como se preparar – System Design
- Relembre a arquitetura de dados: Pense sobre as diferentes etapas do ciclo de vida dos dados, desde a ingestão até o consumo final. Considere como as ferramentas se conectam e os propósitos de cada camada (bronze, silver, gold).
- Pense em cenários de dados diversos: Considere como você lidaria com diferentes tipos de ingestão (APIs, bancos relacionais, eventos em tempo real) e como garantiria a resiliência e escalabilidade das soluções.
- Ferramentas e suas aplicações: Reflita sobre as ferramentas que você conhece para transformação e modelagem de dados, orquestração e governança. Pense nos prós e contras de cada uma e em como elas funcionam internamente.
- Qualidade, monitoramento e segurança: Revise as práticas essenciais para garantir a qualidade dos dados, identificar e resolver gargalos de performance, e como você abordaria aspectos de segurança e compliance em uma arquitetura de dados.
- Comunicação de arquitetura: Esteja preparado para explicar suas decisões técnicas de forma clara e objetiva, inclusive para públicos não técnicos.
- Integração e evolução: Pense em como os pipelines de dados podem se integrar com outras áreas, como Data Science (MLOps), e como você visualiza a evolução de uma arquitetura a médio e longo prazo.
- Gerenciamento de custos e resiliência: Considere como você otimizaria custos em um ambiente de dados e como projetaria sistemas escaláveis e resilientes a falhas.
- Trade-Offs: Perguntas de design de sistema e arquitetura são, por natureza, abertas. Esteja pronto(a) para discutir múltiplas abordagens possíveis e seus trade-offs (compromissos/compensações) com seu entrevistador.
- Evite o excesso de engenharia: Tentar cobrir todos os casos extremos desde o início pode levar a sistemas muito complexos. Concentre-se em fornecer soluções simples, discuta suas limitações com o entrevistador e, em seguida, melhore-as conforme a necessidade.
- Relembre a arquitetura de dados: Pense sobre as diferentes etapas do ciclo de vida dos dados, desde a ingestão até o consumo final. Considere como as ferramentas se conectam e os propósitos de cada camada (bronze, silver, gold).
-
📌 Checklist – System Design
Quer garantir que não esqueceu de nada? Use essa checklist para guiar sua abordagem:
✅ Estou pronto para falar sobre projetos anteriores e arquitetura de dados.
✅ Sei explicar o ciclo de vida dos dados (ingestão ao consumo final).
✅ Consigo discutir ferramentas e suas aplicações (prós e contras).
✅ Sou capaz de discutir trade-offs entre diferentes decisões técnicas.
✅ Entendo sobre qualidade, monitoramento e segurança de dados.
✅ Consigo explicar decisões técnicas de forma clara, inclusive para não técnicos.
✅ Pensei em como os pipelines de dados podem se integrar com outras áreas.
✅ Pratiquei criar diagramas em ferramentas como FigJam. -
📑Materiais de apoio – System Design
- Conheça sobre como fazemos as coisas por aqui
- Ferramenta para testar a construção de diagramas
- Designing Data-Intensive Applications – Martin Kleppmann
- Fundamentals of Data Engineering – Joe Reis and Matt Housley