# Roadmap de Engenharia de Dados para 2025

Tenho 2 objetivos com esse roadmap: primeiro, é uma lista muito completa dos assuntos que acredito que te fariam ser fora da curva na área de Engenharia de Dados. Segundo, é a lista dos assuntos que pretendo cumprir no blog.

Em alguns tópicos já deixei quais serão os posts, mas isso pode mudar. A ordem também não é certa, visto que muito do que está aqui não é sequencial.

Já tenho material revisado para um mês de publicação, começando com o post de *História e evolução da Engenharia de Dados*, para o dia 01 de Agosto de 2025. Sinto que em tempos de conteúdo e código escritos por IA, minha forma de resistir é fazer essas publicações. Tentar construir conteúdo de qualidade, com muita curadoria e pesquisa, e que traz o que eu pessoalmente acho interessante -contexto, história - para contribuir com a parte técnica.

## Introdução e Contexto Histórico

* Evolução dos bancos de dados: do modelo relacional, ACID, às origens dos bancos NoSQL.
    
* Surgimento do Big Data: Hadoop, MapReduce e a evolução para frameworks distribuídos como Spark e Flink.
    
* Transição do armazenamento on-premise para a era da nuvem.
    
* Impactos da Engenharia de Software
    

*Posts Relacionados:*

* [**Introdução à Engenharia de Dados**]([https://blog.cadumagalhaes.dev/introducao-a-engenharia-de-dados](https://blog.cadumagalhaes.dev/introducao-a-engenharia-de-dados))
    

* *História e evolução da Engenharia de Dados*
    

---

## Nível 101 – Iniciante

### 1\. Fundamentos de Bancos de Dados

#### 1.1 Conceitos Teóricos

* **Modelos de Bancos de Dados:**
    
    * **Relacional:** Estrutura tabular, integridade referencial.
        
    * **Não Relacional:** Documentos, key-value, grafos, colunar, in-memory, timeseries.
        
    * **OLTP:** Foco em operações transacionais com alta frequência.
        
    * **OLAP:** Ambientes otimizados para análises multi dimensionais e consultas complexas.
        
* **Transações:**
    
    * Conceitos de atomicidade, consistência, isolamento e durabilidade (ACID).
        
    * Exemplos práticos de rollback, commit e gerenciamento de concorrência.
        
* **Casos de Uso e Quando Utilizar Cada Tipo:**
    
    * Bancos relacionais para transações críticas e integridade dos dados.
        
    * Bancos não relacionais para escalabilidade, flexibilidade de esquemas e alta performance.
        

#### 1.2 Exemplos Práticos

* **Bancos Relacionais:**
    
    * Criação de esquemas, tabelas, índices e realização de transações (ex.: PostgreSQL).
        
* **Bancos NoSQL:**
    
    * Implementação de operações CRUD em MongoDB ou Redis, com exemplos de indexação e consultas.
        

*Posts Relacionados:*

* *Engenharia de dados 101 – Fundamentos de bancos de dados*
    

---

### 2\. Pipelines de Dados

#### 2.1 Conceitos Teóricos

* **ETL:**
    
    * Extração, transformação e carregamento: processos, vantagens e desafios.
        
* **ELT:**
    
    * Extração, carregamento e, posteriormente, transformação: quando utilizar e vantagens.
        
* **Comparação ETL x ELT:**
    
    * Critérios para escolha, impacto em performance, custo e arquitetura.
        
* **Processamento de Dados:**
    
    * **Batch:** Processamento em blocos com execução agendada.
        
    * **Streaming:** Processamento em tempo real, com tolerância à latência.
        
    * **Arquiteturas Híbridas:** Combinação de batch e streaming para cenários específicos.
        
* **Introdução a modelagem de dados:**
    
    * **Incremental Load:** Carregamento de dados apenas quando há mudanças.
        
    * **Row Versioning:** Manutenção de versões das linhas para auditoria e concorrência.
        

#### 2.2 Exemplos Práticos

* **Implementação de ETL:**
    
    * Script em Python para extrair, transformar e carregar dados.
        
* **Implementação de ELT:**
    
    * Carregamento de dados brutos em um data warehouse e transformações via SQL.
        
* **Processamento Batch x Streaming:**
    
    * Demonstração com Apache Spark (modos batch e streaming) e exemplos de arquiteturas híbridas.
        

*Posts Relacionados:*

* Engenharia de dados 101 – Fundamentos de Pipelines de dados
    

---

### 3\. Fundamentos de Arquitetura de Dados

#### 3.1 Conceitos Teóricos

* **Data Warehouse:**
    
    * Conceitos, arquitetura e casos de uso.
        
* **Data Lake:**
    
    * Armazenamento de dados brutos, escalabilidade e flexibilidade.
        
* **Data Mart:**
    
    * Subconjuntos de dados específicos para áreas de negócio.
        
* **Arquiteturas Híbridas:**
    
    * Integração de múltiplos conceitos para atender cenários complexos.
        

#### 3.2 Exemplos Práticos

* **Implementação de um Data Warehouse:**
    
    * Projeto básico utilizando ferramentas open-source.
        
* **Construção de um Data Lake:**
    
    * Demonstração de ingestão e organização de dados brutos. *Posts Relacionados:*
        
* Engenharia de dados 101 – Fundamentos de arquitetura de dados
    

---

### 4\. Desenvolvimento e Ferramentas Essenciais

#### 4.1 Linguagem de Programação

* **Tipos de Dados e Estruturas Básicas:**
    
    * **Tipos de Dados:** Trabalhar com strings, números, booleanos, etc.
        
    * **Estruturas Básicas:** Listas, tuplas, dicionários e conjuntos.
        
* **Programação Orientada a Objetos:**
    
    * Conceitos de classes e objetos.
        
    * Implementação de métodos padrão (ex.: `__add__`, `__get__`, etc).
        
* **Estruturas de Dados Avançadas:**
    
    * Árvores, grafos, heaps, e outros conceitos fundamentais da ciência da computação que auxiliam na criação de algoritmos eficientes.
        
* **Gerenciamento de Pacotes e Organização de Projetos:**
    
    * Ferramentas para gerenciamento de pacotes: pip, Poetry, uv, etc.
        
    * Construção e disponibilização de bibliotecas, organização de projetos e uso de ambientes virtuais.
        
* **Manipulação de Arquivos:**
    
    * Leitura e escrita em diferentes formatos: CSV, JSON, YAML, TOML.
        
* **Testes e Qualidade de Código:**
    
    * Boas práticas de testes unitários e integração para garantir a robustez do código.
        
* **Conceitos e Técnicas Modernas:**
    
    * Uso de context managers, dataclasses e decorators.
        
    * Programação assíncrona com `async/await`.
        

---

#### 4.2 SQL

* **Definição e Manipulação de Dados (DDL & DML):**
    
    * Comandos básicos: `CREATE`, `REPLACE`, `UPDATE`, `INSERT`, `DELETE`.
        
* **Consulta de Dados (DQL):**
    
    * Utilização de operadores condicionais e lógicos.
        
    * Ordenação, definição de limites (`LIMIT`, `OFFSET`) e união de resultados.
        
    * Junções (JOINs) para combinar dados de múltiplas tabelas.
        
    * Funções de agregação, como `COUNT`, `SUM`, `AVG`, entre outras.
        
    * Tratamento de texto com funções como `LOWER`, `UPPER`, `CONCAT` e expressões regulares.
        
    * Funções de manipulação de datas e timestamps.
        
    * Uso de subconsultas e Common Table Expressions (CTEs).
        

---

#### 4.3 APIs

* **Conceitos Fundamentais:**
    
    * Princípios de APIs REST: métodos HTTP (GET, POST, PUT, DELETE), códigos de status e autenticação.
        
* **Boas Práticas e Estratégias:**
    
    * Implementação de estratégias de tratamento de falhas e retry.
        
    * Gerenciamento de requisições paginadas.
        
* **Desenvolvimento de APIs:**
    
    * Princípios e práticas para a construção de uma API própria, desde o design até a implementação.
        

---

**Posts Relacionados:**

* Engenharia de dados 101 – Fundamentos de Python
    
* Python aplicado à Engenharia de Dados
    
* Engenharia de dados 101 – Fundamentos de SQL
    
* Engenharia de dados 101 – Criando e consumindo API’s
    

---

Essa estrutura detalhada garante que cada aspecto essencial da programação, SQL e APIs seja abordado de forma clara e completa, facilitando a compreensão e aplicação dos conceitos na prática.

---

## Nível 201 – Intermediário / Preparando-se para o Mercado

### 1\. Arquitetura de Dados Avançada

#### 1.1 Conceitos Teóricos

* **Listagem e Definição de Arquiteturas:**
    
    * Revisão avançada de Data Warehouse, Data Lake e Data Mart.
        
    * **Data Mesh e Data Lakehouse:** Conceitos emergentes e seus impactos.
        
* **Arquiteturas Lambda, Kappa e Medallion:**
    
    * Princípios, benefícios, desafios e comparação teórica.
        
* **Tópico de Comparação Teórica:**
    
    * Critérios, casos de uso e trade-offs entre as arquiteturas.
        

#### 1.2 Exemplos Práticos

* **Implementação Prática:**
    
    * Projetos demonstrando uma arquitetura Medallion com ferramentas de transformação e ingestão de dados.
        
    * Orquestração de pipelines em arquiteturas Lambda ou Kappa.
        

*Posts Relacionados:*

* Engenharia de dados 201 – Arquitetura de dados
    

---

### 2\. Modelagem de Dados

#### 2.1 Conceitos Teóricos

* **Conceitos Fundamentais:**
    
    * **Indexação:** Técnicas para acelerar consultas.
        
    * **Normalização e Desnormalização:** Teoria, vantagens e desvantagens.
        
    * **Slowly Changing Dimensions (SCD):** Gerenciamento de alterações em dados dimensionais.
        
    * **Change Data Capture (CDC):** Captura das alterações ocorridas em sistemas operacionais.
        
* **Formatos de Modelagem:**
    
    * **Modelagem Relacional:** Estrutura e integridade.
        
    * **Modelagem Dimensional:** (Star schema, Snowflake) para BI e análises.
        
    * **One Big Table:** Quando e como utilizar.
        
    * **Outras Abordagens:** Data Vault, modelagem em grafos, etc.
        

#### 2.2 Exemplos Práticos

* **Exercícios Práticos:**
    
    * Criação de modelos de dados para cenários variados.
        
    * Otimização de consultas e demonstrações de normalização/desnormalização.
        

*Posts Relacionados:*

* Engenharia de dados 201 – Modelagem de dados
    

---

### 3\. Transformação de Dados e Apache Spark

#### 3.1 Conceitos Teóricos

* **Frameworks de Transformação:**
    
    * **Foco em Apache Spark:** Conceitos de RDD, DataFrame, Spark SQL e streaming com Spark.
        
    * Menção breve a outros frameworks (Apache Beam, Hadoop) e comparação conceitual.
        
* **dbt e Outras Ferramentas:**
    
    * Teoria sobre dbt (Data Build Tool) e outras alternativas para transformação de dados.
        

#### 3.2 Exemplos Práticos

* **Projeto Spark:**
    
    * Post exclusivo ensinando a configurar, desenvolver e executar um job de transformação com Spark – do consumo à escrita em um data warehouse.
        
* **Implementação com dbt:**
    
    * Exemplo prático de transformação utilizando dbt.
        

*Posts Relacionados:*

* Engenharia de dados 201 – Frameworks de transformação de dados
    
* Engenharia de dados 201 – Fundamentos de PySpark
    

---

### 4\. SQL Avançado

#### 4.1 Conceitos Teóricos

* **Tópicos Avançados:**
    
    * Funções de janela, técnicas de otimização, análise de planos de execução e tuning de performance.
        
* **Casos de Uso:**
    
    * Exemplos de como extrair insights complexos de grandes volumes de dados usando SQL avançado.
        
* **Desafios SQL:**
    
    * Exercícios práticos para resolver problemas de performance e implementar consultas complexas.
        

*Posts Relacionados:*

* Engenharia de dados 201 – SQL Avançado
    
* Engenharia de dados 201 - Otimização de consultas SQL
    

---

### 5\. Fundamentos de Cloud Computing e DataOps

#### 5.1 Cloud Computing

* **Conceitos de Infraestrutura:**
    
    * Noções de redes, infraestrutura, sistemas operacionais, firewall, dns, e comparação entre soluções cloud (AWS, Azure, GCP) e ambientes on-premise.
        
    * Serverless x Gerenciado
        
* **Serverless e Cloud Native:**
    
    * Containers, Kubernetes e CNCF
        
    * Abordagem de funções serverless e arquiteturas orientadas a eventos.
        

#### 5.2 DataOps

* **Integração de Práticas DevOps em Dados:**
    
    * Testes de código e de dados, versionamento e orquestração contínua (CI/CD).
        
* **Alertas, Monitoramento e Alta Disponibilidade:**
    
    * Estratégias para configurar alertas, dashboards, logs e tracing (usando Open Metrics, Open Telemetry) para garantir resiliência e disponibilidade.
        

*Posts Relacionados:*

* Engenharia de dados 201 – Fundamentos de Cloud Computing
    
* Engenharia de dados 201 – Fundamentos de DataOps
    

---

### 6\. Orquestradores de Dados

*talvez mencionar aqui em orquestração sobre ferramentas de extração (airbyte, fivetran, etc)*

#### 6.1 Conceitos Teóricos

* **Comparativo de Soluções:**
    
    * Análise das principais ferramentas: Airflow, Dagster, Prefect, Mage
        
    * Introdução a orquestradores mais gerais, como o n8n.
        
    * Ferramentas dentro de provedores (gcp workflows, azure data factory, aws step functions, databricks jobs, snowflake data pipelines, etc)
        
* **Apache Airflow:**
    
    * Funcionamento, principais conceitos (DAGs, Operators, Hooks) e casos de uso.
        
    * Criação de pipelines com Airflow, integração com APIs e bancos de dados.
        
    * Airflow moderno: taskflow api, agendamento por datasets, agendamentos complexos com timetables
        

*Posts Relacionados:*

* Engenharia de dados 201 – Orquestradores de Dados
    
* Engenharia de dados 201 – Fundamentos de Apache Airflow
    
* Tudo que você precisa saber sobre Apache Airflow
    

---

### 7\. No Code e Low Code em Engenharia de Dados

#### 7.1 Conceitos Teóricos

* **Ferramentas No Code/Low Code:**
    
    * Introdução ao Apache Hop e outras plataformas como KNIME, Alteryx, Google DataPrep, Talend Data Preparation.
        
* **Vantagens e Desafios:**
    
    * Quando e por que utilizar abordagens no code/low code na engenharia de dados.
        
* **Demonstração de um Projeto No Code:**
    
    * Configuração e execução de um pipeline utilizando uma dessas ferramentas, enfatizando facilidade de integração e visualização.
        

*Posts Relacionados:*

* Engenharia de dados 201 – No Code/Low Code em Engenharia de Dados
    

---

### 8\. Soft Skills e Gestão de Projetos

#### 8.1 Conceitos Teóricos

* **Comunicação e Documentação:**
    
    * Técnicas de storytelling com dados, documentação eficaz e visualização para stakeholders.
        
* **Gestão Ágil de Projetos:**
    
    * Metodologias ágeis e frameworks de gerenciamento aplicados a projetos de dados.
        
* **Colaboração e Liderança:**
    
    * Desenvolvimento de habilidades interpessoais e liderança em equipes multidisciplinares.
        

*Posts Relacionados:*

* Engenharia de dados 201 – Soft Skills e Gestão de Projetos
    

---

### 9\. Conceitos Avançados em Analytics Engineering

#### 9.1 Conceitos Teóricos

* **Transformação para Analytics:**
    
    * Uso de ferramentas como dbt para criar modelos analíticos robustos, camadas semânticas e data marts focados em BI.
        
* **Integração com BI e Data Visualization:**
    
    * Estratégias para conectar pipelines a ferramentas de visualização (Looker, Tableau, Power BI) e modelagem de dados para análises avançadas.
        
* **Projeto de Analytics Engineering:**
    
    * Criação de um pipeline completo que vai da ingestão de dados à construção de dashboards interativos e insights de negócios.
        

*Posts Relacionados:*

* Engenharia de dados 201 – Fundamentos de Analytics Engineering
    

---

## Nível 301 – Avançado e Tendências

### 1\. Processamento de Dados em Streaming e Arquiteturas em Tempo Real

#### 1.1 Conceitos Teóricos

* **Processamento Streaming:**
    
    * Comparativo entre Spark Streaming, Apache Flink, Kafka Streams e outros.
        
* **Arquiteturas em Tempo Real:**
    
    * Processamento de eventos e aplicações críticas em tempo real.
        

#### 1.2 Exemplos Práticos

* **Pipeline de Streaming:**
    
    * Desenvolvimento de um pipeline integrado com Kafka ou ferramentas similares.
        

*Posts Relacionados:*

* Engenharia de dados 301 – Processamento de dados em streaming
    

---

### 2\. Observabilidade, Monitoramento e Documentação de Dados

#### 2.1 Conceitos Teóricos

* **Observabilidade e Monitoramento:**
    
    * Estratégias de logging, métricas, tracing e alertas usando ferramentas como Grafana e Kibana.
        
* **Documentação de Dados e Governança:**
    
    * Boas práticas para rastreamento de lineage, catalogação (Data Catalogs) e manutenção da documentação contínua.
        

#### 2.2 Exemplos Práticos

* **Dashboards e Automação:**
    
    * Configuração de dashboards e criação de processos automatizados de documentação.
        

*Posts Relacionados:*

* Engenharia de dados 301 – Observabilidade
    
* (Novo) Engenharia de dados 301 – Documentação e Governança de Dados
    

---

### 3\. Data Quality e Governança

#### 3.1 Conceitos Teóricos

* **Qualidade dos Dados:**
    
    * Testes unitários e de dados, validação, auditoria e políticas de compliance (LGPD, GDPR).
        
* Criptografia, mascaramento, controle de acesso, compliance e **Data Anonymization** (técnicas de anonimização para proteger dados sensíveis).
    

#### 3.2 Exemplos Práticos

* **Processos Automatizados:**
    
    * Implementação de pipelines de validação e monitoramento da qualidade dos dados.
        

*Posts Relacionados:*

* Engenharia de dados 301 – Data Quality
    

---

### 4\. Engenharia de Software Aplicada à Engenharia de Dados

#### 4.1 Conceitos Teóricos

* **Sistemas Distribuídos e Concorrência:**
    
    * Fundamentos, desafios e padrões de design para sistemas escaláveis.
        
* **Integração com Microserviços:**
    
    * Arquiteturas orientadas a eventos e mensageria.
        
* **Containerização e Orquestração:**
    
    * Uso de Docker, Kubernetes e práticas de CI/CD para ambientes de dados.
        

#### 4.2 Exemplos Práticos

* **Projeto Integrado:**
    
    * Construção de um sistema distribuído que integra ingestão, processamento (batch/stream) e orquestração com containerização.
        

*Posts Relacionados:*

* Engenharia de dados 301 – Sistemas distribuídos e concorrência
    
* Engenharia de dados 301 – Engenharia de Software para Dados
    

---

### 5\. Mensageria e Integração em Tempo Real

#### 5.1 Conceitos Teóricos

* **Sistemas de Mensageria:**
    
    * Comparativo entre Kafka, Google PubSub, AWS SQS, RabbitMQ e outros.
        
* **Arquiteturas para Integração:**
    
    * Ingestão e processamento de dados em tempo real.
        

#### 5.2 Exemplos Práticos

* **Implementação Prática:**
    
    * Configuração de um sistema de mensageria para ingestão e processamento de eventos.
        

*Posts Relacionados:*

* Engenharia de dados 301 –Fundamentos de mensageria de dados
    

---

### 6\. MLOps

#### 6.1 Conceitos Teóricos

* **Integração de Dados e Machine Learning:**
    
    * Estruturação de pipelines que conectem o processamento de dados com fluxos de ML.
        
* **Ferramentas e Práticas:**
    
    * Uso de MLflow, Kubeflow, BentoML e outras ferramentas para experimentação, versionamento e implantação de modelos.
        

#### 6.2 Exemplos Práticos

* **Projeto de MLOps:**
    
    * Criação de um pipeline demonstrando a transição do desenvolvimento até a produção de modelos, com monitoramento de performance e qualidade.
        

*Posts Relacionados:*

* Engenharia de dados 301 – Fundamentos de MLOps
    

---

## Módulo de Carreira e Desenvolvimento Profissional

### 1\. Certificações

* **Principais Certificações:**
    
    * Google Cloud Professional Data Engineer
        
    * AWS Certified Data Analytics – Specialty
        
    * Azure Data Engineer Associate
        
    * Databricks Certified Data Engineer
        
    * AWS Certified Data Engineer
        
* **Dicas para Certificação:**
    
    * Materiais de estudo, simulados e estratégias de preparação.
        

### 2\. Preparação para Entrevistas

* **Técnicas e Estratégias:**
    
    * Perguntas comuns em entrevistas técnicas e comportamentais para engenheiros de dados.
        
* **Exercícios Práticos:**
    
    * Resolução de desafios práticos e dicas para apresentação de projetos e experiências.
        
* **Recursos Complementares:**
    
    * Guias, cursos online e comunidades para troca de experiências.
        

---

## Sugestões de Livros e Referências Essenciais

* **Designing Data-Intensive Applications** – Martin Kleppmann
    
* **Streaming Systems** – Tyler Akidau, Slava Chernyak e Reuven Lax
    
* **The Data Warehouse Toolkit** – Ralph Kimball
    
* **Data Pipelines Pocket Reference** – James Densmore
    
* Artigos, white papers e documentações oficiais das principais ferramentas (Airflow, Spark, Kubernetes, etc.).
    

## Conclusões

Como atualização rápida, posso dizer que nos últimos meses acabei trabalhando e pesquisando muito sobre ML, modernizei a maior parte da infraestrutura das nossas aplicações. Coloquei algumas coisas pra rodar no meu homelab, que agora tem 2 nós. Fiz alguns projetos internacionais.

E ta ficando cada vez mais difícil me encaixar num rótulo de cargo: Data Engineer, MLOps Engineer, SRE, desenvolvedor, arquiteto. E pra mim isso é ótimo, porque toda essa variedade me ajuda a manter motivado. Comecei a me envolver em discussões e contribuições de alguns projetos open source do meu dia a dia: Airflow, Airbyte, Open Data Discovery, dbt. To fazendo o [AirSQL](https://github.com/1cadumagalhaes/airsql), que é basicamente pra facilitar a minha própria vida com airflow mas acho que pode ser bem útil por aí.

E no próximo semestre eu vou estar até trabalhando como “pesquisador” de ML, na área de visão computacional, que é um dos produtos que a gente ta querendo dar escala. Ganhamos um desafio de aceleração do Google, e além de um orçamento bizarro de créditos de cloud, vamos conseguir mentorias e até usar o espaço Google For Startups aqui em SP.
