Resumo das Habilidades Essenciais:
- Front-End: html, css, javascript, react/angular/
vue.js, Docker para front-end, ci/cd, figma;
- back-end: .NET (C#),
ASP.NET Core, APIs RESTful, Docker para back-end;
- Boas práticas: SOLID, Teste Unitário e Integrado, Segurança em Containers, Scrum;
1. Desenvolvimento Front-End em Containers (Conhecimento/Experiência Necessária)
- Experiência sólida em Front-End: Experiência em desenvolvimento de sites e aplicações web;
- Conhecimento de Tecnologias necessárias: HTML5, CSS3, Java Script;
- Alguma experiência em Frameworks modernos como React, Angular ou
Vue.js é um grande diferencial;
- (Desejável/Diferencial) Conhecimento em Design System;
- Experiencial com a Ferramenta Figma. Capacidade de prototipação e geração de sites HTML;
- Experiência em Docker para Front-End: O desenvolvedor precisa entender como empacotar e rodar o front-end dentro de containers utilizando o Docker;
- Conhecimento Containers e Orquestração: Experiência com Docker Compose para orquestrar containers;
- Experiência Sólida em ci/cd: experiência com integração contínua e entrega contínua (ci/cd), utilizando ferramentas como gitlab ci, github actions ou azure devops;
2. Desenvolvimento Back-End em Containers com .NET (Conhecimento/Experiência Necessária)
- .NET (C#): O desenvolvedor deve ter experiência com a stack .net, principalmente com
asp.NET Core, para criar APIs RESTful ou GraphQL que irão rodar dentro de containers;
- Experiência Web API com .NET: Habilidade para desenvolver Web APIs robustas utilizando
ASP.NET Core para comunicação entre o front-end e back-end;
- Conhecimento em Docker para Back-End: O conhecimento em Docker para empacotar aplicações .NET, otimização de performance, configuração de variáveis de ambiente, persistência de dados;
- (Desejável/Diferencial) Conhecimento Banco de Dados em Containers: O desenvolvedor deve saber como rodar bancos de dados (ex: SQL Server, PostgreSQL, MongoDB) em containers e como configurar a persistência dos dados, utilizando volumes Docker;
5. Boas Práticas de Desenvolvimento (Conhecimento/Experiência Necessária)
- SOLID: Conhecimento das boas práticas de design de software, como os princípios SOLID e Clean Code;
- Segurança em Containers: Conhecimento sobre segurança em ambientes de containers, como controle de permissões de usuários, segurança de redes e práticas para proteger dados sensíveis;
- Testes Unitários e de Integração: Experiência com testes unitários e de integração em aplicações .NET, além de testes end-to-end para o front-end;
- Experiência e/ou abertura para utilizando de metodologias ágeis (Scrum/Kanban).
3. Infraestrutura e Orquestração de Containers (Conhecimento/Experiência Diferencial)
- Conhecimento em Kubernetes (opcional, mas desejável): Para soluções mais complexas, é ideal que o desenvolvedor tenha algum conhecimento sobre a orquestração de containers utilizando Kubernetes;
- Conhecimento Docker Compose: Para facilitar o desenvolvimento local e orquestrar múltiplos containers;
- Conhecimento Networking entre Containers: O desenvolvedor deve entender como os containers se comunicam entre si, criando redes Docker e expondo as portas corretamente;
4. DevOps e Automação (Conhecimento/Experiência Diferencial)
- Azure DevOps, Gitlab ci/cd ou github actions: familiaridade com pipelines de ci/cd para automatizar o processo de construção, teste e deploy de aplicações .NET dentro de containers;
- Monitoramento e Logs: Experiência com integração de ferramentas de monitoramento e logs, como Prometheus, Grafana, ELK stack (Elasticsearch, Logstash, Kibana), para garantir que os containers e serviços estejam funcionando corretamente.
6. Ferramentas e Tecnologias Complementares (Conhecimento/Experiência Diferencial)
- Git: Proficiência no uso do Git para versionamento de código e controle de versões.
- Azure ou AWS : O desenvolvedor pode precisar de alguma experiência com serviços de nuvem;
- Microserviços : Entender e executar as melhores práticas de design e construção de microserviços, especialmente em um ambiente containerizado;
Prazo de Entrega: Não estabelecido