Conhecimentos necessários:
- Experiência com Java (versões 8+)
- Experiência com desenvolvimento, manutenção e evolução de aplicações Java
- Experiência com Spring Framework e SpringBoot
- Experiencia com NodeJS
- Experiência com desenvolvimento de integrações entre sistemas (API`s REST, gRPC, Web Sockets etc.)
- Experiência com gerenciamento de código com GIT
- Experiência com gerenciamento de dependências com Maven
- Experiência com testes unitários
- Experiência com desenvolvimento de micro serviços
- Experiência com SQL e sistemas gerenciadores de banco de dados (MySQL/PostgreSQL ou Oracle)
- Experiência com o uso Conteinerização (Docker)
Desejável:
- Conhecimento de gerenciamento de dependências com Gradle
- Conhecimento de arquitetura de sistemas distribuídos (Micro serviços)
- Conhecimento de Padrões de Projeto (GoF)
- Conhecimento padrões de autenticação, como OAuth2 e uso de JWT
- Conhecimento com plataformas de mensageria (exemplo: RabbitMQ, Apache Kafka, Apache Pulsar, etc.).
- Conhecimento com metodologias ágeis.
- Experiência com projetos em ambientes Cloud (AWS)
- Experiência com desenvolvimento de integrações assíncronas entre sistemas
- Experiência com banco de dados NoSQL (Redis, MongDb)
Diferencial:
- Ter atuado no mercado de empresas de meios de pagamento.
- Conhecimento de Padrões de Arquitetura (Design RESTful, Arquitetura Hexagonal, Domain Driven Design)
- Conhecimento de Event-Driven Architecture
- Conhecimento com o uso de GIT com Gitlab
- Conhecimento com gerenciamento de dependências com Gradle
- Experiência com o uso de ferramentas de APM, como Datadog, New Ralic, Jaeger, etc.
- Experiência/Conhecimento com Kubernetes ou EKS
- Experiência/Conhecimento nas plataformas de mensageria RabbitMQ/Amazon SQS e Apache Kafka/Amazon MSK
- Experiência/Conhecimento com Hashicorp Vault ou AWS Secret Manager
- Experiência com a migração de sistemas monilíticos para microserviços
- Experiência com desenvolvimento em Kotlin para Backend utilizando SpringBoot
- Desenvolver, dar manutenção e evolução de sistemas desenvolvidos pelo time
- Apoiar tecnicamente o time nas decisões de implementação, manutenção e evolução dos sistemas
- Acompanhar e controlar débitos técnicos das soluções desenvolvidas pelo time
- Busca constante por conhecimento e inovações no time
- Participar ativamente do dia a dia da equipe, criando um ambiente para trocas de experiência, feedbacks e propostas de melhoria
- Estimular o time na busca de melhoria contínua de nossos sistemas, arquitetura e processos
- Buscar sempre pela excelência de nossos serviços, colocando clientes e parceiros estratégicos no centro de nossas ações