A Verity está buscando novos talentos!
Somos uma boutique para modernização e aceleração digital e buscamos Software Architect para fazer parte dessa jornada.
Olha só quais são as experiências e conhecimentos que você precisa ter para acelerar e transformar com a gente:
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.
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.