Published on

Desenvolvedor Java Magalu Júnior

Authors
  • avatar
    Name
    Johnny Vaz
    Twitter

Anúncio oficial desta vaga:

Requisitos

  • Java (Hibernate, Spring, Maven);
  • NodeJs (HapiJs)
  • Design de APIs REST;
  • Desenvolvimento utilizando Banco de dados relacionais;
  • Construção de ambientes de build/test/deployment automatizados;
  • Experiência com containers (Docker, kubernetes);
  • Experiência em monitoramento de aplicações (Elasticsearch / Kibana / Grafana);
  • Experiência em desenvolver aplicações Escaláveis;
  • Experiência em ambientes de cloud computing

Diferenciais:

  • Experiência em desenvolvimento Orientado a Mensageria (RabbitMq).
  • Experiência com desenvolvimento de front (React, etc);
  • Experiência com GCP.

Detalhamento para criação da trilha

Linguagens

NomeLink Documentação
Java
Java Development Kit - JDK e Eclipse/IntelliJ IDEA
Estruturas de Controle e Loops,
Condicionais,
Estruturas de repetição
Arrays, matrizes
Programação Orientada a Objetos (POO)
Métodos e construtores.
Encapsulamento e modificadores de acesso.
Herança e polimorfismo.
Interfaces e classes abstratas.
Exceções e tratamento de erros.
Manipulação de Arquivos e Coleções
Leitura e escrita de arquivos.
Manipulação de diretórios.
Coleções em Java (Listas, Sets, Mapas).
Iteração e ordenação de coleções.(ArrayList, HashMap, etc.).
JDBC (Java Database Connectivity).
Conexão com banco de dados.
Consultas SQL.
JPA
Gerenciamento de pacotes com Maven
Threads e concorrência.
Framework Spring
Framework Hibernate
-----------------------------
Mensageria Rabbit
Manipular mensagens na fila(inserir, consumir)
Configurar Microsserviço para trabalhar com filas
-----------------------------
Banco de Dados
Tipos de bancos (relacional, NoSql)
Gerenciamento de Banco de Dados com programa SGBD em banco mysql
Modelagem de dados, entidades, criação de tabelas, PK, FK
consulta a dados (SELECT, WHERE, JOIN)
Backup e restauração de dados
Segurança, permissão de acesso
-----------------------------
Controle de Versão - GIT
init, push, commit, pull, merge, clone, add, branch, checkout, status, rebase
-----------------------------
Docker
Contêineres, imagem docker
Dockerfile
Docker Compose
Docker no pipeline de CI/CD
Redes no docker
Principais comandos: docker run, docker build, docker pull, docker push, docker images, docker ps, docker stop e docker rm.
-----------------------------
Kubernetes
Pods, Services, Deployments
HPA (Horizontal Pod Autoscaler)
Configurações com ConfigMaps e Secrets
-----------------------------
API REST
CRUD
Autenticação
Testes unitários
Swagger, Postman
Respeitando as regras de comunicação de APIs restful, como verbos (POST, PUT, PACTH, DELETE, GET) e respostas de httpcode de acordo com as ações. Exemplo: Uma requisição POST com sucesso, respondendo httpcode 201.
-----------------------------
Monitoramento de Aplicações
Elasticsearch, consulta
Kibana, criar dashboards
indexação de dados
Grafana
Prometheus
Criar alertas
-----------------------------
Aplicações Escaláveis
Arquitetura de Microsserviços
Balanceamento de Carga (Nginx)
Elasticidade (orquestração de containers)
Monitoramento e Logs
Bancos de Dados Escaláveis, dimensionamento, replicação e particionamento.
Cache Distribuído (Redis)
Segurança e Identidade (controle de acesso, autenticação e autorização)
Autoscaling:dimensionamento automático com base na carga de trabalho.
Tolerância a Falhas (falhas sem interromper o serviço)
Desenvolvimento Concorrente
-----------------------------
Gerenciamento de Projeto
kanban
scrum
Lean
XP