Responsabilidades e atribuições:
• Desenvolver, sustentar e evoluir soluções de software para missão crítica utilizando Java+Springboot;
• Defender, aplicar e fomentar o uso de boas práticas de desenvolvimento, prezando pelo uso correto de design patterns e garantindo a manutenabilidade do código;
• Participar do processo de avaliação de código (code review), levantando pontos de melhoria e garantindo a qualidade do que está sendo entregues;
• Explorar soluções e regras de negócio em processo de criação ou amadurecimento, saindo muitas vezes da zona de conforto de uma simples aplicação;
• Produzir código de qualidade, garantido por processos de testes automatizados de aceitação e/ou carga;
•Ser uma referência técnica para posições de senioridade menor, compartilhando conhecimento de conceitos e ferramentas utilizados no dia a dia, bem como fomentando a aplicação de código seguro
• Participar da concepção, desenho e manutenção de arquiteturas do ecossistema de recebíveis, garantindo a confiabilidade e escalabilidade dos sistemas envolvidos, porém sem exageros de complexidade
• Ler, compreender e identificar gaps em escopo e definições de negócio para soluções existentes ou em desenvolvimento, escalando o problema quando necessário a discussão e atuando de forma ativa na definição de uma solução mais bem planejada;
• Garantir entregas seguras e acompanhadas, gerando e acompanhando monitorações existentes;
• Manter a troca com profissionais multidisciplinares e de outras áreas, a fim de resolver problemas de maneira cross quando necessário;
• Ajudar a desimpedir membros do time com menos experiência, quando o impedimento for de natureza técnica/skillset;
• Participar e ajudar na manutenção de um ambiente seguro e de crescimento para os demais integrantes do time, tratando temas com leveza e responsabilidade;
• Sentir-se confortável em executar demandas cuja sua vivência é baixa, aceitando novos desafios e desbravando a problemática quando necessário
Requisitos e Qualificações:
• Superior em Tecnologia da Informação ou áreas correlatas;
• Experiência com desenvolvimento de sistemas com arquitetura distribuída;
• Experiência sólida em Java, utilizando ambientes Unix e Linux;
• Conhecimento sólido em estrutura de dados, algoritmos e análise de complexidade;
• Vivência em confecção de documentações técnicas e system design;
• Conhecimento em POO, Design Patterns e anti patterns, principalmente utilizando chamadas REST e JSON;
• Conhecimento em arquitetura orientada a eventos;
• Experiência com bancos de dados relacionais;
• Experiência com TDD e BDD;
• Vivência com refactoring de código e testes unitários;
• Conhecimento em conceitos e plataformas de CI/CD;
• Experiência com Kanban e pilares Lean.
• Postura proativa, com facilidade de comunicação e aspectos de liderança, facilidade de comunicação e capacidade de mentoria;
• Protagonismo, ser capaz de encarar desafios e desbravar novas abordagens e soluções;
• Senso de urgência, ser capaz de medir e se comunicar para identificar e aplicar soluções que resolvem problemas críticos;
• Autonomia, ser capaz de, através das ferramentas do time, identificar gaps e possíveis melhorias, bem como demandas que podem ser iniciadas/apoiadas.