




Descrição: Experiência: * Experiência comprovada em design e implementação de arquiteturas de software escaláveis, resilientes e seguras. * Experiência prática em desenvolvimento de software utilizando a linguagem C\#. * Experiência com a aplicação de princípios de design de software (SOLID, Clean Code, etc.). * Experiência com a implementação de testes automatizados (unitários, integração, etc.). * Experiência com padrões de arquitetura (microsserviços, filas de mensagens, etc.). Conhecimento Técnico: * Profundo conhecimento da linguagem C\# e do ecossistema .NET. * Sólido conhecimento de padrões de design de software (Design Patterns). * Conhecimento de princípios de arquitetura de software (microsserviços, filas de mensagens, etc.). * Conhecimento de práticas de desenvolvimento ágil (Scrum, Kanban). * Conhecimento de segurança da informação (autenticação, autorização, criptografia). * Conhecimento de ferramentas de versionamento de código (Git). * Familiaridade com metodologias de testes (TDD, BDD). * Familiaridade com Docker e Docker Compose. * Conhecimento de CI/CD (Integração Contínua / Entrega Contínua). * Conhecimento de IaC (Infraestrutura como Código). Habilidades: * Excelente capacidade de comunicação e colaboração para trabalhar em equipe. * Habilidade de análise crítica e resolução de problemas complexos. * Capacidade de traduzir requisitos de negócios em especificações técnicas claras e concisas. * Habilidade de tomar decisões técnicas embasadas em dados e em um profundo entendimento dos trade\-offs envolvidos. * Habilidade de documentar soluções de forma clara e organizada. * Capacidade de aprender e se adaptar a novas tecnologias e ferramentas. Arquitetura e Design da Solução: * Escolher padrões arquiteturais adequados (microsserviços, filas de mensagens, etc.). * Justificar a escolha dos padrões em relação aos requisitos. * Considerar os trade\-offs entre simplicidade e flexibilidade. * Definir estratégias claras para lidar com o aumento da carga (escalabilidade). * Implementar mecanismos de recuperação de falhas (resiliência). * Atender ao requisito de não indisponibilidade do serviço de controle de lançamentos em caso de falha do consolidado diário. Definir como os componentes se comunicam (protocolos, formatos de mensagem, etc). * Escolher ferramentas de integração adequadas e suas responsabilidades. * Implementar autenticação, autorização e criptografia (segurança). * Implementar mecanismos de proteção contra ataques (WAF, etc). * Analisar a qualidade da divisão do sistema em partes menores e gerenciáveis. Abstrair e segregar responsabilidades entre as camadas. * Implementação: * Garantir a aderência às boas práticas de desenvolvimento (Solid, Clean Code, etc). * Escrever código legível, organizado e de fácil manutenção. * Utilizar a linguagem C\# de forma eficiente. * Implementar testes com boa cobertura, qualidade e relevância. * Cumprir os requisitos técnicos obrigatórios. Atender aos requisitos de negócio. * Documentação e Apresentação: * Documentar a arquitetura de forma clara e concisa. * Criar diagramas que representam a arquitetura. * Justificar as decisões arquiteturais. * Definir os fluxos de dados. * Escrever instruções claras e detalhadas de como a aplicação funciona e como rodar localmente (Readme). * Centralizar documentações. * Descrever possíveis melhorias ou expansões do sistema. * Demonstrar capacidade de visão e planejamento a longo prazo. Discutir trade\-offs e desafios enfrentados durante o desenvolvimento. * Diferenciais e Boas Práticas: * Garantir que o código seja executado de forma local e sem erros. * Utilizar estratégias de Docker e Docker Compose. * Implementar pipeline automatizada (CI/CD). * Utilizar estratégias de IaC (Infraestrutura como Código). * Realizar estimativas de custos. 2512280202491713515


