.twjm-card{border:1px solid #eee;border-radius:8px;padding:28px 32px;margin:0 0 32px;background:#fff}
.twjm-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 36px;margin-bottom:28px}
.twjm-item{font-size:20px;line-height:1.35;color:#6f7787;word-break:normal;overflow-wrap:anywhere}
.twjm-icon{display:inline-flex;width:24px;height:24px;align-items:center;justify-content:center;margin-right:8px;color:#a855f7;font-size:21px;vertical-align:-2px}
.twjm-label{font-weight:800;color:#12005a}
.twjm-actions{display:flex;gap:16px;align-items:center;flex-wrap:wrap}
.twjm-apply{display:inline-flex;min-width:280px;justify-content:center;padding:15px 28px;border-radius:8px;background:#3b16a3;color:#fff!important;text-decoration:none;font-weight:700;font-size:20px}
.twjm-section{margin:26px 0}.twjm-section h2{font-size:26px;color:#12005a;margin:0 0 14px}.twjm-section p{font-size:20px;line-height:1.55;color:#6f7787}
.twjm-rating{border:1px solid #eee;border-radius:8px;padding:24px 28px;margin:0 0 32px;background:#fafafa}
.twjm-rating-head{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin-bottom:12px}
.twjm-score{display:inline-flex;align-items:center;justify-content:center;min-width:82px;height:42px;border-radius:8px;background:#3b16a3;color:#fff;font-weight:800;font-size:20px}
.twjm-verdict{font-size:22px;font-weight:800;color:#12005a}
.twjm-rating p{font-size:18px;line-height:1.55;color:#6f7787;margin:0 0 12px}
.twjm-rating ul{margin:0 0 0 20px;color:#6f7787;font-size:18px;line-height:1.55}
@media(max-width:700px){.twjm-card{padding:22px 18px}.twjm-grid{grid-template-columns:1fr}.twjm-apply{min-width:0;width:100%}}
Descricao Geral
SOBRE A VAGA
Vaga aberta de Desenvolvedor(a) Java Júnior (Fila de Pedidos). A empresa contratante é confidencial neste anúncio, e a seleção é conduzida pela Sylision. Modelo 100% remoto. Contratação: tempo integral, CLT ou PJ.
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.
O QUE VOCÊ VAI FAZER
– 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
REQUISITOS
– 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
COMO É TRABALHAR AQUI
Trabalho 100% remoto, de qualquer lugar do Brasil.
Par de programação acontece com frequência nas primeiras semanas, e depois por demanda. Toda mudança em consumidor passa por revisão de outra pessoa antes de ir para produção.
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
TECNOLOGIAS
Java, Spring Boot, Apache Kafka, JPA, PostgreSQL, Docker, REST, JUnit, Git
COMO SE CANDIDATAR
Candidate-se por aqui, pelo Indeed, ou, se preferir, direto no site da Sylision:
https://www.sylision.com/vagas/desenvolvedor-java-junior-fila-de-pedidos-468?de=indeed
Benefícios:
– Trabalho remoto
Local do trabalho: Remoto