![Brasil](https://dev-rjblack.pantheonsite.io/wp-content/plugins/wp-job-manager/assets/images/company.png)
Brasil
Engenheiro de Software (Principal) – Will Bank – Home Office
Responsabilidades e atribuições
Quais serão os seus desafios?
Participar desde a ideação e concepção de produtos e serviços, até sua entrega e sustentação;
Escolhas e/ou discussões das tecnologias que serão empregadas e participação ativa na definição das soluções técnicas;
Conhecer os preceitos de agilidade, times multidisciplinares e topologia de times.
Atuar nos projetos com ritmo sustentável, entendendo sempre como entregar os melhores resultados sem sobrecarregar o time;
Contribuir com a evolução dos nossos projetos sendo parte de um time de alta performance que atua diretamente com empresas de relevância nacional e internacional;
Trabalhar em uma equipe com accountability e multidisciplinar.
Irá contribuir para reduzir a complexidade do processo de desenvolvimento da sua Squad;
Fornecer orientação técnica sendo referência para pessoas desenvolvedoras da sua tribo de forma proativa;
Representar o time em discussões técnicas cross-times da empresa;
Documentação de processos técnicos, desenho de arquitetura e post-mortem;
Auxiliar os gestores de pessoas na construção de PDI do time técnico, contribuindo com sua experiência.
Conduzir o time para eliminação das dependências com outras equipes, trazendo o máximo de autonomia para construção de software
Participar ativamente de decisões estratégicas dos times, ajudando no mapeamento de competências e definindo pessoas certas para os problemas certos.
Profundo conhecimento em arquitetura de software que mais que resolvam o problema, escalem, possuam resiliência, monitoria e processo de melhoria contínua.
Já ter atuado como staff em produtos de alto impacto.
Criar, viabilizar e liderar as decisões estratégicas de tecnologia do will, alinhando-as com os objetivos de negócio e promovendo o crescimento sustentável da organização.
Evoluir os princípios de desenvolvimento de produto, compartilhando a responsabilidade pela sua adesão no círculo em que está inserido e promovendo uma cultura de excelência técnica.
Requisitos e qualificações
Para isso, você vai precisar ter:
Experiência com criação e orquestração de microserviços (ref. biblio. Microservices Patterns)
Estratégias de comunicação entre serviços usando técnicas de mensageria (ref biblio. Enterprise Integration Patterns);
Aplicações com alto volume de processamento de informações e alta concorrência de requisições;
Ambientes com serviços poliglotas (NodeJS, Java, Python, React, Next.JS, Flutter etc);
Observabilidade de sistemas distribuídos;
Node e Java (você precisa dominar uma delas e ter no mínimo, interesse na outra);
Frameworks de programação (NestJS, Express, Spring Boot);
Integração (APIs REST, GRPC);
Programação concorrente;
Conhecimento em banco de dados noSql e SQL tais como (PostgreSQL, MongoDB, Redis, SQLServer…);
Boas práticas de programação (Clean Code,Object Calisthenics, Testes automatizados);
Segurança de aplicações (OAuth, JWT…);
Análise e melhoria de performance de aplicações;
Cloud (AWS).
Conhecimento em boas práticas de criação de sistemas de software e modelagem, assim como saber escolher padrões arquiteturais
Conhecer e saber aplicar comunicação entre sistemas, via APIs, PubSub, Streams etc.
E será um diferencial se você tiver:
Já ter atuado como principal ou senior staff em produtos de alto impacto.