Desenvolvedor Full Stack é responsável por criar soluções inovadoras para problemas complexos. Além disso, ele deve possuir habilidades em arquitetura de sistemas, design de software e tecnologias de desenvolvimento.
Responsabilidades
* Avaliar e discutir a arquitetura dos sistemas e propor melhorias;
* Traduzir requisitos de negócios em arquiteturas e sistemas enquadrando-os nos sistemas já existentes ou propondo novos módulos;
* Planejar e executar soluções para o ecossistema de microsserviços;
* Garantir o maior nível possível de automação das soluções;
* Participar de pesquisas e implantação de novas tecnologias;
* Garantir a integração das ferramentas, interagindo com as demais áreas;
* Monitorar o ambiente e criar ações proativas para garantir a saúde do ecossistema;
* Garantir a confiabilidade do ecossistema junto ao time de Segurança;
* Desenvolver ferramentas com o intuito de garantir que os recursos estão sendo utilizados de forma consciente;
* Participar de melhorias no processo de desenvolvimento técnico do time;
* Desenvolver código junto aos times para resolver problemas técnicos e gerar valor de negócio;
* Adquirir conhecimento amplo sobre arquitetura dos sistemas e suas integrações.
Requisitos e Qualificações
* Experiência em Arquitetura Front-End: MVP, MVVM;
* Conhecimento em Injeção de dependências, separação de responsabilidades e inversão de controle;
* Conhecimento Serviços Web e Comunicação: Conhecimento do Protocolo Criação e consumo de APIs RESTful, Otimização de latência (caches, otimização de consultas, estratégias para carregamento de páginas), Tratamento de Erros;
* Conhecimento em Bibliotecas e Ferramentas: REST Client: Retrofit (Dart) e Dio, navegação com Beamer, json_serializable, build_runner, mocktail, flutter_test;
* Conhecimento em Programação Orientada a Objetos e Design Patterns;
* Conhecimento em Testes e Qualidade de Código: Unit Testing, Automações, Planejamento de Testes;
* Conhecimento em Troubleshooting: debugging, análise de erros de compilação e cache, análise de logs, Investigação e correção de cenários reais de crashes e problemas;
* Conhecimento em Kotlin;
* Experiência com desenvolvimento de sistemas e linguagem de programação Java;
* Experiência com tecnologias de comunicação assíncrona como Rabbit e Kafka;
* Experiência com microsserviços (DevOps e Docker);
* Experiência com bancos de dados relacionais;
* Experiência com Spring (Core, Boot, Cloud, Data etc.);
* Experiência com ferramentas de desenvolvimento de testes e conhecimento sobre boas práticas relacionadas a qualidade e desempenho de software;
* Conhecimento em CI/CD e plataforma Jenkins;
* Experiência com refatoração de código, ferramentas e práticas de observabilidade e monitoramento de sistemas;
* Conhecimento em práticas e ferramentas de segurança;
* Desejável: Conhecimento em Cloud; Experiência com metodologias ágeis.
Benefícios
Desenvolvedores Full Stack podem trabalhar em uma variedade de projetos e ambientes diferentes, incluindo desenvolvimento de software, integração de sistemas, manutenção de sistemas e suporte a usuários.
Além disso, eles podem trabalhar em equipe com outros profissionais da área, como designers, especialistas em marketing e gerentes de projetos.
Outros
O desenvolvimento como profissional é contínuo, pois sempre surgem novas tecnologias e tarefas a serem realizadas.
Portanto, é importante estar atualizado com as últimas tendências e tecnologias.