Lavora.

Tillbaka till sökningen

Arquiteto de Software - Sênior

FCamara

Ort
Distans (BR)
Arbetsplats
Distans
Anställningsform
Heltid
Publicerat
I dag
Källa
Himalayas

A FCamara está em busca de um(a) profissional que possua um forte conhecimento técnico em desenvolvimento de software, especialmente em C#, e que seja capaz de aplicar esse conhecimento para projetar e implementar soluções de alta qualidade, escaláveis e seguras. A capacidade de comunicação, colaboração e resolução de problemas também são essenciais para o sucesso nesta função.

Arquitetura e Design da Solução:

  • ➢ Escolher padrões arquiteturais adequados (micros serviç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.

Habilidades Comportamentais Desejáveis:

  • ➢ Proatividade ➢ Pensamento analítico
  • ➢ Orientação a resultados
  • ➢ Colaboração
  • ➢ Adaptabilidade
  • ➢ Aprendizado contínuo

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.).

Conhecimentos Técnicos:

  • ➢ 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.
  • Originally posted on Himalayas