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:
Responsabilidades e atribuições:
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.
Requisitos e qualificações:
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.