O que faz um Engenheiro de Dados?

Entenda de uma vez por todas o que faz um Engenheiro de Dados e o que o faz diferente de um Cientista de Dados.

Allan Sene
Data Hackers
5 min readJan 27, 2018

--

“Engenheiro de Dados é um tipo especializado de Engenheiro de Software que possibilita outros a responderem questões sobre grandes datasets com restrições específicas de latência e tempo.”

Nathan Marz
Criador do Apache Storm e autor do livro “Big Data

Se você mexe com tecnologia, já tá cansado de passar por isso: ter que explicar o que você faz pra alguém que não entende muito bem dessas coisas de tecnologia. Mesmo assim, no ramo, quando você se declara Desenvolvedor/Engenheiro de Software, maioria vai saber que você mexe com código e talvez até te perguntar se é backend ou frontend.

“O Júnior… cê que entende dessas coisa… dá uma olhada no meu celular…”

Mas desenvolvimento de software é uma profissão velha se formos comparar com as novas modas que a explosão de dados ocasionou nessa última década.

O meu caso é bem mais grave. Até gente do meu trabalho ainda não sabe muito bem o que eu faço!

Por quê você é Engenheiro de Dados e não Desenvolvedor ou Arquiteto? É tipo Cientista de Dados? É tipo um DevOps de banco? O Paulo faz que você não faz?

Não tenho a presunção de dar nesse texto uma explicação digna de entendimento da minha avó ou tia, mas espero que depois de lê-lo, você possa ter uma noção melhor das atribuições de um Engenheiro de Dados.

Habilidades de um Engenheiro de Dados

Durante a estruturação da área de Data Science & Analytics da MaxMilhas, conseguimos construir alguns mapas — vulgo gráfico do Fifa — que descrevem visualmente quais as habilidades importantes pra cada membro do nosso time. O mapa para o Engenheiro de Dados foi o seguinte:

Em outro texto voltaremos a tratar sobre os outros mapas :)

Bancos e Armazéns de Dados

Hoje, com serviços como Amazon RDS e Google Big Query, não é mais tão comumente necessário ter um ou mais DBAs com anos de experiência em bancos de dados transacionais como MySQL e SQL Server. Os serviços deixam a manutenção, monitoramento e evolução destes bancos muito mais fáceis e automatizados.

Na maioria dos casos é mais vantajoso para times de tecnologia, ter profissionais mais generalistas, que conseguem manter sem maiores dificuldades diversas plataformas de dados diferentes: bancos NoSQL, SQL, datastores (ElasticSearch, Druid) e repositórios de arquivos (S3, HDFS…). Assim dá grande flexibilidade aos Arquitetos/Desenvolvedores para escolherem as plataformas que mais se adequam aos requisitos e restrições dos sistemas a serem construídos.

Desenvolvimento e Arquitetura de Software

O Engenheiro de Dados deve ser capaz de modelar e desenvolver qualquer que seja o software necessário para a disponibilização ou aquisição de dados de uma organização. Micro-serviços, jobs e APIs devem ser de seu domínio absoluto. Além disso, deve dominar Design Patterns e Boas Práticas (TDD, SOLID…) a fim de manter discussões e códigos de alto nível frente aos outros stakeholders de tecnologia: Devs, Engenheiros e Arquitetos.

Operações e Infraestrutura

Também deve ser capaz de provisionar, implantar, monitorar e manter servidores e máquinas da infraestrutura de dados. Saber orquestrar containeres de micro-serviços e clusteres de instâncias (Kubernetes, Mesos, EC2) e o mínimo de shell/bash para agir em casos de desastres, construir automações ou intervenções específicas dentro das máquinas.

Integrações

Belos e eficientes pipelines de carros

E por fim, ele deve ser capaz de integrar diversas fontes de dados diferentes. Pode ser tanto se utilizando de pipelines realtime, como Logstash, AWS Kinesis ou Kafka, quanto utilizando-se de jobs, SQL ou não, como utilizando-se de Apache Spark, Hadoop, Hive e outras engines diversas de processamentos de dados massivos. A sua maior preocupação deve ser com resiliência desses mecanismos e também a prontidão da disponibilidade dos dados.

Responsabilidades de um Engenheiro de Dados

O Data Engineer é então responsável por garantir que os dados estejam disponíveis para a análise de forma segura. Engenheiros de dados constroem reservatórios para Big Data. Além disso, eles desenvolvem, constroem, testam e mantêm arquiteturas, tais como bancos de dados e sistemas de processamento de dados em grande escala. Uma vez que esses dados estão disponíveis, profissionais como Cientista de Dados e Analista de Dados podem aplicar técnicas analíticas para extrair conhecimento.

É de sua total responsabilidade sobre os dados:

  • Coleta: por meio de serviços ou jobs.
  • Transformação: por meio de ETLs, pipelines, streamings, realtime ou não.
  • Armazenamento: em bancos, armazéns e repositórios diversos.
  • Disponibilidade: por meio de serviços ou interfaces de consultas.

Já o Cientista de Dados se preocupa com as análises de negócio dos dados disponbilizados pelo Engenheiro. Deve ter grandes conhecimentos das diversas técnicas estatísticas a serem utilizadas de modo a dar embasamento às informações necessárias para guiar o produto/negócio. Neste post aqui, você pode conferir como é o dia a dia de um Data Scientist.

Mas isso é um unicórnio, Allan!

Parece ser um posto inatingível, mas qualquer um que já tenha pelo menos 5 anos de experiência relevante com software já transitou por diversas dessas disciplinas, mesmo que superficialmente. Nada que estudo incessante e paciência não resolva. Ser Engenheiro de Dados é ser generalista e querer entender de várias coisas ao mesmo tempo. Não é um papel tão glamuroso como é hoje o de Cientista, porém é de muito respeito se desempenhado com louvor.

Este perfil continua sendo muito raro lá fora, imagina então no Brasil… É por esse e outros motivos que começamos o Data Hackers: construir uma comunidade forte, onde a gente possa encontrar diversos profissionais que nos ajudarão a resolver os mais difíceis desafios de Data Engineering.

Faça parte da nossa comunidade pra saber mais sobre essas coisas de dados :)

Quer saber mais e se inteirar mais sobre o mundo de dados? Se inscreva no Data Hackers, a primeira comunidade brasileira de profissionais e entusiastas de dados! Se curtiu o texto, recomende e compartilhe com os amigos ❤

Abraços e até a próxima!

--

--

Allan Sene
Data Hackers

CTO | Lead Data Engineer | Co-Founder of Data Hackers and Dadosfera. Loves science, code and cats ^*^