Responsabilidades:
- Trabalhar em equipe de desenvolvimento (código/testes) com múltiplos projetos;
- Entender e transformar requisitos de negócio, funcionais e não funcionais, em código modular e reutilizável;
- Aplicar as boas práticas de engenharia de software e padrões de projeto;
- Adotar frameworks, linguagens de programação, arquitetura e divisão de componentes do sistema e documentação ao longo do ciclo de vida do projeto;
- Implementar e manter aplicações, bibliotecas, componentes e frameworks;
- Desenvolver e fazer manutenção de códigos/testes de sistemas;
- Orientar programadores Juniores nos processos de desenvolvimento;
Formação acadêmica:
- Graduação em curso de nível superior na área de Tecnologia da Informação, ou conclusão de qualquer curso de nível superior acompanhado de certificado de curso de pós-graduação (especialização, mestrado ou doutorado) na área de Tecnologia da Informação de, no mínimo, 360 horas.
Requisitos obrigatórios por perfil:
- Experiência com Ionic nativo e híbrido;
- Experiência com React Native e seu ecossistema (Expo, CLI, etc.);
- Experiência com integração com plugins nativos via Cordova ou React Native Bridge;
- Experiência com publicação e manutenção de apps nas lojas Android e IOS;
- Conhecimento em desenvolvimento, manutenção e distribuição de aplicações mobile, uso de frameworks de desenvolvimento híbrido e notificações;
- Conhecimento com componentização, navegação, gerenciamento de estado (Redux/MobX/Context API).
- Experiência em consumir e integrar APIs RESTful seguras com autenticação via OAuth2 / JWT, desenvolvidas em Java (Spring Boot), PHP, R e Python.
- Experiência com apps offline com sincronização de dados segura;
- Experiência com Scrum ou Kanban, dentro de práticas Agile;
- Experiência com integração com sistemas de mensageria, como RabbitMQ, Kafka, MQTT;
- Experiência com versionamento, automação e entrega contínua via Git, GitLab CI/CD e OpenShift.
- Conhecimento em estratégias de teste mobile (mocking, coverage, test IDs).
- Experiência com implementação de testes com Jest, Detox, React Native Testing Library, Karma/Protractor;
- Experiência com banco de dados local (offline-first):
- SQLite, TypeORM, Room, WatermelonDB, PouchDB ou IndexedDB.
- Experiência com debugging com ferramentas como Flipper, Reactotron e Chrome DevTools.
- Experiência com boas práticas na aplicações de padrões como MVVM, Clean Architecture, DDD (Domain-Driven Design), separação de responsabilidades (Services, Repositories, UseCases)
- Boa experiência em algoritmos e estrutura de dados;
- Experiência em SQL, bancos de dados relacionais e não relacionais;
- Experiência em SQL, bancos de dados relacionais e não relacionais;
- Experiência com ECMAScript;
- Experiência em tecnologias Web GUI, como Angular, Vue, HTML5, CSS3;
- Experiências nas melhores práticas de codificação / design e padrões de projeto, otimização, escalabilidade e clusterização;
- Conhecimentos em ambiente DevOps;
- Conhecimentos em plataformas para o provisionamento e gerenciamento de containers (Kubernetes, OpenShift entre outros);
- Experiência em gerenciamento de dependências com Node.js + NPM ou Yarn;
- Inglês técnico (leitura e escrita).
Certificações ou período de experiência por tecnologia:
- Experiência mínima de 5 anos em programação, sendo 1 ano comprovado em desenvolvimento Mobile; ou
- Experiência mínima de 3 anos em programação, sendo 1 ano comprovado em desenvolvimento Mobile e ao menos duas Certificações de Desenvolvedor Mobile em vigor e válidas.
Competências comportamentais:
- Proatividade, capacidade de trabalho em equipe, capacidade de autogerenciamento e tomada de decisão, capacidade de comunicação (capacidade de se expressar oralmente e por escrito com precisão e clareza e de compreender com facilidade mensagens escritas e faladas).