Problemas complexos exigem a experiência certa! Um dos maiores desafios da atualidade é o correto armazenamento e processamento de dados tendo em consideração estes três domínios (3Vs): Volume, Velocidade e Variedade.
Na Xpand IT, a equipa de Data Engineering desenvolve e implementa arquiteturas e soluções de software que tratam da captura, ingestão, armazenamento e gestão de dados críticos de grandes clusters de informação onde os 3Vs estão sempre presentes. Tiramos partido de um conjunto de frameworks avançadas como Spark, Kafka, Hive/Impala, Azure Data Services ou MongoDB usando Java e Scala como linguagens de programação para interagir com estas frameworks.
Principais responsabilidades
Enquanto Software Engineer é essencial trabalhar juntamente com os Platform Engineers, para desenvolver soluções de software, aplicando as melhores práticas em termos de desenho e arquitetura de sistemas distribuídos de grande escala.
As principais responsabilidades passam por garantir o desempenho e a escalabilidade do software que interage com os sistemas backend Big Data, contribuindo para a manutenção da performance geral do sistema.
Principais responsabilidades diárias:
- Implementar soluções em arquiteturas distribuídas em que a performance de tratamento de grandes volumes de dados é fulcral
- Desenhar e desenvolver soluções de software robustas e escaláveis, independentemente da quantidade de dados a processar
- Implementar boas práticas e padrões de desenho das soluções Big Data no software produzido
- Analisar problemas complexos que necessitam de soluções eficientes para manipular grandes quantidades de informação.
- Desenvolver modelos e organização de estruturas de dados que otimizem as operações de “pesquisa” e “armazenamento” em sistemas distribuídos de grande escala
- Desenhar e desenvolver de APIs de comunicação entre os sistemas de backend Big Data e sistemas externos através de protocolos de comunicação standard.
Stacks:
Java/Scala, Spark, Kafka/Confluent, MongoDB, Databricks
Requisitos
Formação académica
Licenciatura e/ou Mestrado em Informática, Sistemas de Informação ou Ciência da Computação.
Experiência com Java/Scala
Experiência em tecnologias baseadas em Java (JBoss, Spring, Spring MVC, Hibernate) e na definição de interfaces de comunicação utilizando standards como XML, JSON, SOAP.
Padrões de design
Experiência na implementação de padrões de design em soluções de software avançadas (multi-threaded, multi-process, multi-cloud).
Bases de dados
Experiência com bases de dados relacionais e não relacionais (SQL, MySQL, NoSQL, Hadoop, MongoDB).
Ferramentas de desenvolvimento
Elevada experiência no uso de ferramentas como Eclipse, Maven, Jenkins, GIT, JIRA ou equivalentes.
Idiomas
Domínio do Inglês, falado e escrito.
Pontos extra:
- Conhecimento ou experiência na utilização de frameworks de computação/armazenamento distribuído como Apache Spark, Kafka ou native cloud solutions como Databricks, EMR ou DataProc;
- Skills de Team Player e problem-solver.