Conhecimentos Desejáveis (Nível Intermediário/Avançado)
I. Nuvem e Infraestrutura
- AWS (Amazon Web Services): Plataforma de computação em nuvem líder de mercado, oferece diversos serviços para diferentes necessidades.
- API Gateway: Cria e gerencia APIs escaláveis e seguras.
- Lambda: Permite executar código sem a necessidade de provisionar servidores.
- DynamoDB: Banco de dados NoSQL de alta performance e escalabilidade.
- SES: Serviço de envio de emails transacionais e de marketing.
- SNS: Serviço de notificação por push para diversos destinos.
- SQS: Fila de mensagens gerenciada para comunicação assíncrona entre aplicações.
- CloudWatch: Monitora e coleta métricas, logs e eventos de recursos da AWS.
- Route 53: Serviço de gerenciamento de DNS para roteamento de tráfego.
- VPC: Rede virtual privada na nuvem AWS para maior segurança e controle.
- Ferramenta de Monitoramento:
- AWS CloudWatch: Monitora e coleta métricas, logs e eventos de recursos da AWS, permitindo identificar problemas e otimizar o desempenho.
- Amd Linux (server): Distribuição Linux otimizada para servidores AMD, oferecendo alta performance e confiabilidade.
II. Desenvolvimento e Ferramentas
- Nodejs / Typescript: Plataforma de desenvolvimento JavaScript robusta e escalável, com Typescript para tipagem estática e código mais seguro.
- Serverless : Modelo de computação em nuvem onde o código é executado em resposta a eventos, sem necessidade de provisionar servidores, ideal para aplicações escaláveis e de baixo custo.
- AWS Lambda: Serviço serverless da AWS que permite executar código sem a necessidade de provisionar servidores.
- Banco não relacional:
- DynamoDB: Banco de dados NoSQL da AWS de alta performance e escalabilidade, ideal para aplicações que precisam de alta disponibilidade e baixa latência.
- MongoDB: Banco de dados NoSQL popular, conhecido por sua flexibilidade e escalabilidade.
- SQL (sql server, postgres mysql): Linguagem de consulta estruturada para bancos de dados relacionais, fundamental para manipular e analisar dados.
- Devops: Conjunto de práticas que visam integrar desenvolvimento, operações e segurança, para otimizar o ciclo de vida de software.
- Azure DevOps: Ferramenta de DevOps da Microsoft que oferece diversos recursos para automatizar e otimizar o ciclo de vida de software.
- Jenkins: Ferramenta de automação de integração contínua e entrega contínua (CI/CD) popular e de código aberto.
- Docker: Ferramenta para containerizar aplicações, facilitando a implantação e o gerenciamento em diferentes ambientes.
- Testes automatizados:
- Mocha: Framework de testes JavaScript popular e fácil de usar.
- Jest: Framework de testes JavaScript moderno com foco em simplicidade e velocidade.
- Desenvolvimento orientado a domínio (ddd): Abordagem de desenvolvimento de software que foca na modelagem do domínio do problema, para criar software mais flexível e fácil de manter.
- Arquitetura orientada a evento (sns, sqs): Estilo de arquitetura de software onde os componentes comunicam-se através de eventos, permitindo maior desacoplamento e escalabilidade.
- SNS: Serviço de notificação por push da AWS para diversos destinos.
- SQS: Fila de mensagens gerenciada para comunicação assíncrona entre aplicações.
III. Interfaces e Ferramentas Web
- Angular: Framework JavaScript popular para desenvolvimento de aplicações web de página única (SPA).
- ElasticSearch/Opensearch: Ferramenta de busca e análise de dados de alto desempenho, ideal para grandes volumes de dados.
Atividades a serem exercidas:
1) Compreender as necessidades do negócio:
- Colaborar com stakeholders de diferentes áreas para entender seus desafios e objetivos.
- Analisar os processos e sistemas existentes para identificar oportunidades de otimização.
- Traduzir as necessidades do negócio em requisitos técnicos específicos.
2) Desenvolver soluções tecnológicas inovadoras:
- Projetar soluções escaláveis, robustas e seguras que atendam às necessidades do negócio.
- Selecionar juntamente com o time, as tecnologias mais adequadas para cada componente, considerando fatores como custo, desempenho e escalabilidade.
- Liderar a equipe de desenvolvimento na implementação das soluções.
3) Gerenciar o ciclo de vida da solução:
- Planejar, executar e monitorar o projeto de acordo com o cronograma e orçamento.
- Gerenciar os riscos e problemas que podem surgir durante o projeto.
- Garantir a qualidade da solução através de testes e validação.
4) Garantir a entrega de valor para o negócio:
- Avaliar e se possível medir o impacto da solução nos resultados do negócio.
- Apresentar os resultados de forma clara e concisa para os stakeholders.
Experiência profissional:
- Experiência comprovada em desenvolvimento e implementação de soluções tecnológicas complexas.
- Proficiência em diversas tecnologias, como cloud computing (aws), big data e segurança da informação.
- Habilidade para trabalhar em equipe multidisciplinar e liderar projetos.
- Excelentes habilidades de comunicação e apresentação.
- Experiência em gerenciamento de projetos e riscos.
Formação acadêmica:
- Formação superior em Engenharia da Computação, Ciência da Computação, Sistemas de Informação ou áreas correlatas.
Informática e nível de conhecimento:
- Avançado (similar a um desenvolvedor)
Competências:
- Visão estratégica
- Pensamento crítico
- Criatividade
- Raciocínio lógico
- Comunicação eficaz
- Liderança
- Capacidade de trabalhar em equipe
- Proatividade
- Orientação a resultados