Buscamos um desenvolvedor que tenha além de conhecimento em linguagens de programação, conhecimento e vontade de trabalhar com modelos de machine learning para conseguir adaptá-los a dispositivos moveis com processamento limitado. O candidato deverá conseguir criar aplicações Android que executem e tragam os mesmos resultados dos modelos que antes rodavam em processadores de grande porte.

Atividades:

– conversão e otimização de modelos para execução no telefone
– adaptação de códigos de pré processamento para execução no telefone para os modelos convertidos;

Requisitos:
Formação superior concluída em Engenharia / Ciência da Computação, Sistemas da Informação ou similar;
Desenvolvimento Android :
- conhecimento de bibliotecas de cálculo numérico (BLAS, Eigen, xtensor) é diferencial
- conhecimento de como funciona o framework do Android é diferencial
Conhecimentos em frameworks de Machine Learning (TensorFlow, PyTorch, Caffe…)
- overview de como uma rede neural funciona e como são treinadas
- as vantagens e desvantagens de cada tipo de rede/camada/função de ativação/etc. não é crítico
- saber os conceitos por trás é fundamental no entanto, como por exemplo o que é uma convolução (com ou sem zero padding, etc.), uma camada totalmente conectada, uma FFT, etc.
Conhecimentos em bibliotecas de cálculo numérico, científico e manipulação de dados em Python (numpy, scipy, pandas):
- conhecimento de Python suficiente para conseguir traduzir um código que realiza um cálculo em Python para C++, normalmente indo atrás do código fonte das operações do numpy e scipy e reimplementando em C ou C++