**Principais Responsabilidades**:
- Desenho e Definição da Arquitetura de Sistemas: Projetar e definir arquiteturas de software complexas, focando em escalabilidade, performance e alta disponibilidade
- Elaborar diagramas arquitetônicos e padrões de design, assegurando que as soluções sejam modulares, eficientes e alinhadas com as necessidades do negócio
- Padrões e Melhores Práticas de Desenvolvimento
- Estabelecer e promover padrões de design (Design Patterns) e práticas de desenvolvimento orientadas a objetos, DDD (Domain-Driven Design) e TDD (Test-Driven Development)
- Garantir a qualidade do código por meio de revisões periódicas, auditorias e aplicação de boas práticas
- Escalabilidade e Performance
- Avaliar e implementar soluções para otimizar a performance dos sistemas, garantindo o uso eficiente de recursos computacionais
- Garantir que as soluções sejam escaláveis tanto vertical quanto horizontalmente, usando técnicas como caching, load balancing, sharding e clustering
- Segurança e Conformidade
- Definir e implementar políticas de segurança que protejam os dados e sistemas contra ameaças externas e internas
- Colaborar com a equipe de segurança para realizar auditorias de conformidade, proteger APIs e garantir que as soluções estejam em conformidade com as regulamentações (ex.: LGPD, GDPR)
- Aplicar técnicas de criptografia e autenticação segura, garantindo a integridade dos dados sensíveis
- Inovação e Pesquisa Tecnológica
- Explorar e adotar novas tecnologias e frameworks que possam melhorar a eficiência, segurança e escalabilidade dos sistemas
- Realizar POCs (Proof of Concept) para validar a adoção de novas tecnologias no contexto da arquitetura atual da empresa
- Estabelecer uma visão de longo prazo para a evolução dos sistemas, promovendo inovações tecnológicas alinhadas com as tendências do mercado
- Mentoria e Liderança Técnica
- Fornecer orientação técnica e mentoria contínua para desenvolvedores, garantindo que todos sigam as melhores práticas de desenvolvimento
- Conduzir sessões de treinamento técnico sobre arquitetura de software e inovações tecnológicas
- Liderar as discussões técnicas e garantir que as decisões de arquitetura estejam alinhadas com os objetivos de negócios
- Documentação e Manutenção detalhada da arquitetura dos sistemas, garantindo que ela seja acessível e constantemente atualizada
- Criar e manter a documentação detalhada da arquitetura dos sistemas, garantindo que ela seja acessível e constantemente atualizada
- Documentar decisões arquitetônicas e mudanças para assegurar a rastreabilidade e facilitar manutenções futuras
**Requisitos**:
- Graduação em Ciência da Computação, Engenharia de Software ou áreas relacionadas.
- Experiência sólida com arquitetura de sistemas complexos e escaláveis.
- Proficiência em linguagens como.Net, C#, Node.js, Asp, Javascript, TypeScript, Python, entre outras.
- Expertise em arquitetura de microsserviços, monolítica e serverless.
- Experiência com bancos de dados SQL e NoSQL (ex.: PostgreSQL, MongoDB).
- Conhecimento avançado em cloud computing (AWS, Azure, GCP, Oracle OCI).
- Forte experiência com padrões de design e frameworks modernos.
Diferenciais:
- Certificações em arquitetura de software ou cloud (AWS Certified Solutions Architect, Azure Solutions Architect).
- Experiência com ferramentas de orquestração de containers como Kubernetes e Docker Swarm.
- Conhecimento de infraestrutura como código (Terraform, CloudFormation).
**Familiaridade com frameworks de integração contínua e entrega contínua (CI/CD).