[Remoto] Desenvolvedor(a) Java Júnior (Fila de Pedidos) | Confidencial (vaga via Sylision)

Aberta
#1,969 0 comentários 0 reações 0 responsáveis Ver no GitHub

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
5/5
Tempo estimado
Mais de uma semana
Facilidade para iniciantes
1/100
Tipo de issue
Funcionalidade
Clareza
Claramente especificada
Status de atividade
Ativa
Stack de tecnologia
java, kafka, postgresql, spring-boot
Domínio
api, backend, databases

Direção de pesquisa

This issue describes a junior Java job opening, not a repository change. Read the linked Sylision vacancy page to review the role and application instructions; there are no files or tests to inspect. The issue is complete when the vacancy closes or after 28 days.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

API CLT Docker Git Java Júnior PJ PostgreSQL RabbitMQ Remoto Rest Spring SQL

Nossa empresa

Confidencial (vaga via Sylision): a empresa contratante não é nomeada neste anúncio. A seleção é conduzida pela Sylision.

Descrição da vaga

Pedido entra pela API, responde rápido para quem chamou e segue para processamento assíncrono. Do outro lado, consumidores em Java com Spring Boot leem de tópicos do Apache Kafka, avançam a situação do pedido, gravam em PostgreSQL e publicam o evento seguinte. Você vai trabalhar nesses consumidores e no desenho de estados do pedido. Três coisas dominam o dia a dia. Ordem, porque dois eventos do mesmo pedido não podem ser aplicados fora de sequência. Idempotência, porque mensagem se repete e aplicar duas vezes não pode mudar o resultado. E mensagem que não processa de jeito nenhum, que vai para a fila de mensagem morta e precisa de um caminho claro de reprocessamento depois da correção. Também existe a parte visível: endpoint para consultar a situação do pedido e o histórico de transições. Quando alguém pergunta por que um pedido parou, a resposta tem de sair do histórico gravado, não de investigação manual em log espalhado.

  • Implementar consumidores Kafka que avançam a situação do pedido
  • Garantir idempotência do consumo, para mensagem repetida não duplicar efeito
  • Respeitar ordem por chave de pedido e tratar evento que chega adiantado
  • Encaminhar mensagem irrecuperavel para fila de mensagem morta com o motivo
  • Construir a rotina de reprocessamento do que ficou parado
  • Expor consulta de situação e histórico de transições por endpoint REST
  • Escrever teste de consumidor, incluindo mensagem duplicada e fora de ordem

Local

100% remoto, no Brasil

Requisitos

Obrigatórios:

  • Formação em andamento ou concluída em curso de tecnologia, ou projeto próprio publicado com código Java seu
  • Java com orientação a objetos, coleções e tratamento de exceção
  • Noção de Spring Boot
  • SQL de consulta e escrita em banco relacional
  • Entender a diferença entre processar na hora e processar depois, com fila no meio
  • Git no dia a dia

Diferenciais:

  • Já ter usado Kafka, RabbitMQ ou qualquer mensageria, mesmo em estudo
  • Noção de máquina de estados aplicada a pedido ou a processo
  • Docker Compose para subir fila, banco e aplicação localmente
  • Ter escrito teste de integração com dependência em container
  • Curiosidade por entrega no mínimo uma vez e por que isso exige idempotência

Benefícios

  • Ambiente colaborativo, com senso de comunidade e conquistas celebradas em equipe
  • Trabalhe de qualquer lugar, com liberdade e flexibilidade
  • Conexão global: convivência com times de diferentes países e culturas
  • Apoio à saúde física com TotalPass e Mediquo
  • Cuidado com a saúde mental pelo programa Team Care
  • Contratação e jornada definidas com a empresa contratante

Contratação

CLT ou PJ. Faixa salarial: R$ 4.100 a R$ 5.600 por mês.

Como se candidatar

Pela página da vaga: https://www.sylision.com/vagas/desenvolvedor-java-junior-fila-de-pedidos-468?utm_source=github&utm_medium=comunidade&utm_campaign=soujava

Tempo médio de feedbacks

Contato para retorno do processo: [email protected]

Esta issue é encerrada quando a vaga fecha ou em até 28 dias.

Linguagem predominante
TypeScript
Estrelas
1k
Forks
51
Métricas de merge de PRs
Nenhum PR com merge em 30d

Preparar o ambiente

Este projeto não oferece contêiner de desenvolvimento, Dockerfile nem guia de contribuição, então a configuração fica por sua conta: comece pelo README e veja nosso guia da primeira contribuição para os passos gerais.

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de soujava/vagas-java

Todas as issues de soujava/vagas-java

Issues semelhantes

Mais issues de TypeScript

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.