Responsabilidades
- 3.3.1.1. Trabalhar em equipe de desenvolvimento (código/testes) com múltiplos projetos;
- 3.3.1.2. Entender e transformar requisitos de negócio, funcionais e não funcionais, em código modular e reutilizável;
- 3.3.1.3. Aplicar as boas práticas de engenharia de software e padrões de projeto;
- 3.3.1.4. 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;
- 3.3.1.5. Implementar e manter aplicações, bibliotecas, componentes e frameworks;
- 3.3.1.6. Desenvolver e fazer manutenção de códigos/testes de sistemas;
- 3.3.1.7. Orientar programadores Juniores nos processos de desenvolvimento;
Formação acadêmica
- 3.3.2.1. 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
- 3.3.3.1. Experiência com Ionic nativo e híbrido;
- 3.3.3.2. Experiência com React Native e seu ecossistema (Expo, CLI, etc.);
- 3.3.3.3. Experiência com integração com plugins nativos via Cordova ou React Native Bridge;
- 3.3.3.4. Experiência com publicação e manutenção de apps nas lojas Android e IOS;
- 3.3.3.5. Conhecimento em desenvolvimento, manutenção e distribuição de aplicações mobile, uso de frameworks de desenvolvimento híbrido e notificações;
- 3.3.3.6. Conhecimento com componentização, navegação, gerenciamento de estado (Redux/MobX/Context API).
- 3.3.3.7. Experiência em consumir e integrar APIs RESTful seguras com autenticação via OAuth2 / JWT, desenvolvidas em Java (Spring Boot), PHP, R e Python.
- 3.3.3.8. Experiência com apps offline com sincronização de dados segura.
- 3.3.3.9. Experiência com Scrum ou Kanban, dentro de práticas Agile.
- 3.3.3.10. Experiência com integração com sistemas de mensageria, como RabbitMQ, Kafka, MQTT;
- 3.3.3.11. Experiência com versionamento, automação e entrega contínua via Git, GitLab CI/CD e OpenShift.
- 3.3.3.12. Conhecimento em estratégias de teste mobile (mocking, coverage, test IDs).
- 3.3.3.13. Experiência com implementação de testes com Jest, Detox, React Native Testing Library, Karma/Protractor;
- 3.3.3.14. Experiência com banco de dados local (offline-first):
- 3.3.3.15. SQLite, TypeORM, Room, WatermelonDB, PouchDB ou IndexedDB.
- 3.3.3.16. Experiência com debugging com ferramentas como Flipper, Reactotron e Chrome DevTools.
- 3.3.3.17. 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)
- 3.3.3.18. Boa experiência em algoritmos e estrutura de dados;
- 3.3.3.19. Experiência em SQL, bancos de dados relacionais e não relacionais;
- 3.3.3.20. Experiência em SQL, bancos de dados relacionais e não relacionais;
- 3.3.3.21. Experiência com ECMAScript;
- 3.3.3.22. Experiência em tecnologias Web GUI, como Angular, Vue, HTML5, CSS3;
- 3.3.3.23. Experiências nas melhores práticas de codificação / design e padrões de projeto, otimização, escalabilidade e clusterização;
- 3.3.3.24. Conhecimentos em ambiente DevOps;
- 3.3.3.25. Conhecimentos em plataformas para o provisionamento e gerenciamento de containers (Kubernetes, OpenShift entre outros);
- 3.3.3.26. Experiência em gerenciamento de dependências com Node.js + NPM ou Yarn;
- 3.3.3.27. Inglês técnico (leitura e escrita).
Certificações ou período de experiência por tecnologia
- 3.3.4.1. Experiência mínima de 5 anos em programação, sendo 1 ano comprovado em desenvolvimento Mobile; ou
- 3.3.4.2. 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
- 3.3.5.1. 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).