[Remoto] Desenvolvedor(a) Java Júnior (Fila de Pedidos) | Confidencial (vaga via Sylision)
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 5/5
- Tempo estimado
- Mais de uma semana
- Facilidade para iniciantes
- 1/100
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
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
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de soujava/vagas-java
-
[Remoto] Desenvolvedor(a) Java Júnior (Marketplace de Lojistas) | Confidencial (vaga via Sylision)AbertaCLT Docker Estágio Git Java JPA Júnior JUNIT PJ Remoto Spring SQL
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 90/100
soujava/vagas-java#1973 ·
-
CLT Docker Estágio Git Java Júnior JUNIT PJ PostgreSQL RabbitMQ Remoto Spring SQL
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 30/100
soujava/vagas-java#1974 ·
-
[Remoto] Desenvolvedor(a) Java Júnior (Integração de Pedidos) | Confidencial (vaga via Sylision)AbertaAPI CLT Docker Git Java Júnior PJ RabbitMQ Remoto Spring SQL
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 1/100
soujava/vagas-java#1972 · 1 comentário ·
-
CLT Docker Estágio Git Java JPA Júnior JUNIT PJ Remoto Spring SQL
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 1/100
soujava/vagas-java#1971 · 1 comentário ·
-
API CLT Docker Git Java JPA Júnior PJ PostgreSQL Redis Remoto Spring SQL
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 1/100
soujava/vagas-java#1967 ·
Todas as issues de soujava/vagas-java
Issues semelhantes
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
Mantenedores costumam responder em até 1 dia
-
Broken links in the docsAberta
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 83/100
Mantenedores costumam responder em até 1 dia
-
🔊 a11y
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 82/100
betagouv/mon-entreprise#4726 ·
Mantenedores costumam responder em até 9 dias
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 68/100
Deltares/fews-pi-requests#357 ·
Mantenedores costumam responder em até 1 dia
-
bug confirmed js v6
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 85/100
Mantenedores costumam responder em até 1 dia