O que a vaga pede
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.