Será importante ter conhecimento/experiência nestes temas:
Linguagem de Programação:
- Proficiência avançada em Java.
Frameworks:
- Experiência comprovada com o framework Spring (Spring Boot, Spring MVC, Spring Data, etc.).
- Habilidade no uso de JUnit para testes unitários e de integração.
Ferramentas:
- Experiência com Apache Kafka para processamento de streams e mensageria.
- Domínio de sistemas de controle de versão, especificamente Git.
Conceitos de Programação:
- Sólido entendimento de Orientação a Objetos.
- Conhecimento em desenvolvimento de APIs RESTful.
Banco de Dados:
- Experiência com bancos de dados relacionais e não-relacionais, incluindo gerenciamento de concorrência.
- Conhecimento sobre o Teorema de CAP;
- Conhecimento sobre ACID e BASE transactions;
Arquitetura de Software:
- Experiência na construção e manutenção de microserviços.
- Compreensão de arquiteturas monolíticas e suas implicações.
Orquestração de Containers:
- Habilidade com Kubernetes para gerenciamento de containers em produção.
Padrões de Design e Arquitetura:
- Conhecimento em idempotência e sua aplicação em sistemas distribuídos.
- Familiaridade com o padrão SAGA para gerenciamento de transações em microserviços.
- Experiência com o padrão Outbox para integração de eventos e mensageria.
- Experiência com Design Orientado a Domínio
- Conhecimento em EDA, Event-Driven Architecture
Performance:
- Capacidade de realizar análise de performance e otimização de sistemas.
Sistemas Distribuídos:
- Conhecimentos sólidos em sistemas distribuídos, incluindo:
- Gerenciamento de transações distribuídas.
- Implementação de observabilidade para monitoramento e rastreamento.
- Liderar a estratégia de desenvolvimento de software;
- Evoluir padrões, trilhos e boas práticas de desenvolvimento;
- Realizar treinamento e desenvolvimento técnico dos times;
- Fomentar P&D para adoção de novas tecnologias e/ou processos;
- Atuar na solução de problemas, facilitando o dia a dia dos desenvolvedores;
- Referência técnica;
- Participando de eventos da área tech;
- Mentorear e desenvolver os tech leads;
- Evoluir o tema de Developer Experience.