Estamos contratando: Desenvolvedor Backend Sênior - Squad Integrações:
O que você precisa ter:
- Mínimo de 5 anos de experiência comprovada como Desenvolvedor de Software, Desenvolvedor Backend, Engenheiro de Software ou função equivalente.
- Histórico de participação em decisões técnicas e evolução de sistemas em produção.
Conhecimentos técnicos obrigatórios:
- Experiência com desenvolvimento em Java, preferencialmente nas versões 8, 17 ou 21.
- Experiência com Spring Boot.
- Desenvolvimento e consumo de APIs REST.
- Conhecimento em bancos de dados relacionais e linguagem SQL.
- Conhecimento em bancos de dados não relacionais, como MongoDB.
- Controle de versão utilizando Git.
- Experiência no desenvolvimento de aplicações baseadas em microsserviços.
- Experiência com testes automatizados.
- Spring Cloud.
- Conhecimentos em serviços da AWS (Lambda, S3, SSM, IoT Core, etc).
- Arquitetura Orientada a Eventos (Event-Driven Architecture).
- Domain-Driven Design (DDD).
- Experiência com conceitos como publicação e consumo de eventos, processamento assíncrono, idempotência, retries e Dead Letter Queue (DLQ).
- Conhecimento em sistemas distribuídos.
- Conhecimento em boas práticas de desenvolvimento de software (Clean Code, SOLID, KISS, DRY, YAGNI e conceitos relacionados).
- Experiência na condução de Code Reviews e revisão de Pull Requests, contribuindo para a qualidade, padronização e evolução técnica da equipe.
- Experiência prática com soluções de mensageria, como Kafka, RabbitMQ, ActiveMQ, MQTT, IoT Core, Amazon SQS ou similares.
- Experiência com monitoramento e troubleshooting de aplicações por meio de logs e métricas.
- Noções de utilização de Docker.
- TCP/IP.
- WebSocket.
- Webhooks.
- Experiência na definição e implementação de integrações entre sistemas utilizando APIs REST.
- Experiência na integração com sistemas e serviços de terceiros.
- Conhecimento em mecanismos de autenticação e autorização, como OAuth2, JWT, API Keys ou similares.
- Experiência na definição e evolução de contratos de integração.
- Capacidade de interpretar documentações técnicas e especificações de integração.
- Experiência em troubleshooting de integrações complexas.
- Experiência com processamento assíncrono e troca de mensagens entre sistemas distribuídos.
Conhecimentos desejáveis:
- Cache distribuído com Redis.
- Cache em memória com Caffeine e similares.
- Fundamentos de Java 25.
- Orquestração de fluxos com Temporal.io.
- Comunicação de rede assíncrona orientada a eventos (Netty).
- Protocolos binários.
- Protocolos de comunicação proprietários.
- Fundamentos em organização de dados de baixo nível (byte/bit, nibble, hexadecimais).
- Protobuf ou formatos de serialização similares.
- Observabilidade aplicada a integrações.