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 seguroParticipar 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 complexidadeLer, 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árioRequisitos : 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.
Engenheiro Software • São Paulo, Brasil