A NielsenIQ está a recrutar um/a Engenheiro/a de Software Sénior para integrar a equipa de Scraping e Investigação e Desenvolvimento da NielsenIQ Digital Shelf, em Lisboa. A função está focada na criação de sistemas distribuídos de aquisição de dados capazes de processar, à escala, informação proveniente de milhares de fontes web e mobile.
O/A profissional irá desenvolver arquiteturas de scraping, investigar APIs e aplicações móveis, melhorar a resiliência dos crawlers perante mecanismos anti-bot e contribuir para a inovação técnica das soluções de recolha de dados.
Responsabilidades:
- Conceber e desenvolver arquiteturas distribuídas de scraping capazes de operar em milhares de domínios;
- Criar soluções escaláveis para recolha e processamento de grandes volumes de dados;
- Analisar APIs e aplicações móveis através de ferramentas como Frida, mitmproxy, Charles Proxy e Burp;
- Identificar mecanismos anti-bot, incluindo verificações JavaScript e deteção do comportamento do navegador;
- Desenvolver crawlers capazes de se adaptar a diferentes restrições técnicas;
- Identificar casos limite e testar novas abordagens de aquisição de dados;
- Criar protótipos e transformar soluções experimentais em componentes utilizáveis em produção;
- Promover a partilha de conhecimentos técnicos com a equipa;
- Implementar mecanismos de monitorização e deteção de anomalias;
- Identificar antecipadamente bloqueios, falhas e degradações na qualidade dos dados;
- Colaborar com as equipas de Customer Success, Operações e Dados;
- Garantir a recolha rápida, escalável e consistente de dados de elevada qualidade;
- Contribuir para a definição das ferramentas e da estratégia técnica da área de scraping.
Requisitos:
- Experiência profissional mínima de cinco anos com Python e projetos de scraping de grande escala;
- Conhecimentos aprofundados de tecnologias anti-bot, browser fingerprinting, WAF e desafios JavaScript;
- Experiência com Scrapy, Requests, httpx, Selenium, Playwright ou drivers de navegadores headless desenvolvidos à medida;
- Experiência na gestão de proxies residenciais, de data center e rotativos;
- Conhecimentos de gestão de sessões, cookies e configurações de TLS;
- Forte capacidade de diagnóstico de problemas relacionados com navegadores, tráfego HTTP e dispositivos;
- Conhecimentos de bases de dados como MongoDB, InfluxDB e Redis;
- Capacidade para configurar e otimizar bases de dados utilizadas em sistemas de aquisição de dados;
- Familiaridade com formatos de armazenamento estruturado, como Parquet ou Avro, ou com processamento de dados em tempo real;
- Autonomia, pensamento crítico e capacidade para resolver problemas técnicos complexos;
- Gosto pela experimentação e desenvolvimento de soluções inovadoras.
Será valorizado:
- Experiência na simulação de dispositivos reais para recolha de dados em aplicações móveis;
- Experiência na criação e manutenção de filas de tarefas distribuídas com Celery, Kafka ou tecnologias semelhantes;
- Experiência na recolha de dados em plataformas com elevados requisitos de segurança ou orientadas para dispositivos móveis;
- Experiência com Linux e ambientes cloud, incluindo AWS ou Google Cloud Platform;
- Conhecimentos de Kubernetes, Cloud Run e Cloud Functions;
- Experiência na implementação e orquestração de workloads distribuídas de scraping.
Oferta:
- Salário competitivo;
- Horário de trabalho flexível;
- Ambiente de trabalho flexível, colaborativo e transparente;
- Autonomia para experimentar e propor novas abordagens técnicas;
- Participação em projetos de aquisição de dados com impacto global;
- Integração numa equipa internacional com mais de 60 profissionais especializados em scraping, engenharia e dados;
- Acesso ao LinkedIn Learning;
- Programa de Assistência ao Colaborador;
- Dias de dispensa para participação em ações de voluntariado;
- Oportunidades de aprendizagem, desenvolvimento e progressão profissional.
Processo de recrutamento:
A NielsenIQ poderá utilizar ferramentas de inteligência artificial em diferentes fases do recrutamento, incluindo a análise de currículos, avaliações, agendamento de entrevistas e correspondência entre candidatos e funções. As decisões finais de contratação são tomadas exclusivamente por pessoas.
Diversidade e inclusão:
A NielsenIQ promove um ambiente de trabalho inclusivo e toma as suas decisões de recrutamento com base nas competências e requisitos da função, sem discriminação.