Tipo de contrato: PJ Cargo: Engenheiro de Software Sênior Jornada: Comercial - Hibrida - 1 semana do mês no escritório Local: Brooklin Paulista - São Paulo - SP Benefícios da Vaga: 40 hora de descanso remunerado Requisitos: Clean Architecture: Possui uma base forte dos conceitos aplicados em Clean Architecture para construção de estruturas de código flexíveis testáveis. Design Patterns: Possui familiaridade com a implementação de padrões de design comportamentais, estruturais e criacionais para desenvolver soluções eficazes e escaláveis. SOLID: Aplica os princípios SOLID para garantir a manutenção e extensibilidade do código. Sistemas Distribuídos e Mensageria: Compreende e possui experiência na implementação de sistemas distribuídos e uso de tópicos e filas de mensagens como RabbitMQ e Kafka. Event-Driven Architecture (EDA): Experiência prática na construção de sistemas baseados em eventos, com conhecimento de padrões como Publisher-Subscriber, CQRS e Event Sourcing. Capacidade de aplicar esses padrões na prática para criar sistemas reativos e escaláveis. Microsserviços: Experiência com a implementação de microsserviços para construir sistemas modulares e escaláveis, garantindo que os serviços sejam independentes e possam ser desenvolvidos, implantados e escalados de forma independente. Domain-Driven Design (DDD): Conhecimento dos princípios de DDD para modelar o domínio do negócio e definir limites contextuais claros, ajudando a orientar a criação e integração de microsserviços de maneira que reflita as necessidades e regras do negócio. Paradigmas de Programação: Implementa código em linguagens como Java, Kotlin ou outras linguagens similares, aplicando princípios e melhores práticas de POO e funcional para criar Qualidade de Código: Aplica as práticas de Clean Code, participa e influencia o time nos code reviews. Pirâmide de Testes: Implementa testes unitários, testes de integração e testes de aceitação. Automação de Testes: Tem experiência com frameworks e ferramentas para automação, monitoramento e melhoria da cobertura de testes. Segurança: Tem experiência com autenticação e autorização (ABAC, RBAC), criptografia, gestão de vulnerabilidades em conformidade com normas de segurança. Resiliência: Tem experiência com o design de soluções tolerante à falhas (circuit-breakers, rate limit, throttling, health checks), backup e recuperação, testes de carga e monitoramento proativo. Testes de Performance e Carga: Tem experiência na avaliação da escalabilidade e capacidade do sistema através de testes de stress e de carga. sistemas robustos e escaláveis. Feature Flags: Experiência com implementação de feature flags para ativar ou desativar funcionalidades de forma controlada e minimizar riscos durante implantações. Modelagem de Banco de Dados: Experiência em projetar e otimizar esquemas de bancos relacionais e NoSQL para atender às necessidades de armazenamento e desempenho do sistema em diferentes cenários. Tópico 4: Otimização e Performance Otimização de Performance: Implementação de técnicas de caching, tuning de índices e queries para melhorar a eficiência e a velocidade das operações do sistema.