Demo: A factory of technical hiring challenges, with a live defense and a human decision

A simulation of the tool with fictional data. The screens show the note vault and the command line output, which is how the tool is used. No real candidate had been evaluated with it as of September 2026. The product interface is in Portuguese.

banca-técnica · cofre e terminal

demo with fictional data
Demo screens

desafios / catalogo.md

gerado por scripts/catalogo.mjs em 17/09/2026 14:05 · não editar à mão

Catálogo de desafios

  • 88 cargos (22 trilhas × 4 níveis)
  • 5 desafios
  • 1 pronto-para-publicar
  • 4 rascunho
  • 0 publicados

Cobertura por trilha e nível

Matriz de 22 trilhas por 4 níveis, com o status de cada desafio
trilhaEstágioJúniorPlenoSênior
T01 Frontend————
T02 Backend——pronto-para-publicarX04—
T03 Full-stack————
T04 Mobile————
T05 DevOps——rascunhoX05—
T06 Engenharia de Dados————
T07 SuporterascunhoX01———
T08 QA—rascunhoX02——
T09 Análise de Dados————
T10 Infraestrutura e Redes————
T11 Banco de Dados————
T12 Segurança Defensiva————
T13 AppSec———rascunhoX07
T14 Arquitetura de Software————
T15 Engenharia de ML————
T16 Product Design—planejado——
T17 Gestão de Produto————
T18 CRM e Automação————
T19 Web e SEO Técnico————
T20 Integrações e Pagamentos————
T21 Governança e LGPD————
T22 Liderança Técnica————

planejadorascunhorevisadoblindadopronto-para-publicarpublicadoaposentado

Desafios

idtítulocargostatusduraçãoremuneradoatualizado
T02-P-X04Pedido que sai duas vezesBackend · Plenopronto-para-publicar300 min240 + 60não17/09/2026
T08-J-X02Cupom que não expiraQA · Júniorrascunho225 min180 + 45não16/09/2026
T13-S-X07Sessão que sobrevive ao logoutAppSec · Sêniorrascunho330 min270 + 60sim16/09/2026
T07-E-X01Senha que não entraSuporte · Estágiorascunho105 min60 + 45não15/09/2026
T05-P-X05Deploy que não voltaDevOps · Plenorascunho300 min240 + 60não15/09/2026

Duração = take-home + defesa ao vivo. Acima de 4 h de trabalho assíncrono, o desafio é remunerado. T16 · Júnior está planejado e ainda não tem ficha.

desafios / T02-P-X04-pedido-em-dobro / ficha.md

id
T02-P-X04
trilha
T02 · Backend
nível
Pleno
cargo
Pessoa desenvolvedora backend plena
empresa que assina
Brisa Tecnologia (fictícia)
superfície
Brisa Mercado Online, varejo
competências
idempotência · concorrência · testes · observabilidade
duração
300 min: take-home de 240 + defesa ao vivo de 60
status
pronto-para-publicar
atualizado
17/09/2026

Pedido que sai duas vezes

tese

Garantir que um pedido pago não seja despachado duas vezes quando o aviso do provedor de pagamento chega repetido.

Mecanismos anti-IA 10 de 12 · mínimo em pleno: 9

  • M1contexto proprietário
  • M2armadilha plausível
  • M3ambiguidade intencional
  • M4restrições não padrãofora
  • M5diário de decisões
  • M6revelação em etapas
  • M7explique esta linha
  • M8falha injetada
  • M9PR plantado
  • M10testes ocultos
  • M11estimativafora
  • M12quando não

Portões

portãoetapastatusdataevidência
G0ficha e planoaprovado14/09ficha.md
G1contextoaprovado14/09contexto.md
G2designaprovado14/09design.md, ciclo 2
G3artefatosaprovado14/09candidato/ e banca/
G4ablindagemaprovado16/09banca/blindagem.md
G4bcandidato simuladoaprovado16/09Pleno ≈ 3h50, nota típica 3
G4cequidadeaprovado com condição16/09condição: H3
G4dconfidencialidadeaprovado17/09guardião: 0 achados
G4ecrítico finalaprovado17/09critica-final.md
G5publicaçãoaguardando H1—decisão de uma pessoa

Quem cria não aprova: as revisões G4 recebem o pacote pronto, sem o raciocínio de quem criou.

Histórico de ciclos

cicloquandoresultadomotivomudanças
111 a 12/09voltou do G4a para o G2Um modelo resolveu só com a entrega: o nome de um anexo entregava a armadilha.anexos com nome neutro, revelação em etapas e falha injetada na defesa
214 a 17/09G4 aprovadoNenhum resultado vulnerável e um parcial coberto pela falha injetada.peso ao vivo em 50% e autoria (D8) como eliminatória

Pendências humanas 3 abertas

#pendênciabloqueiaresponsável
H1Canal de contato monitorado para dúvidas do candidatopublicação e envioRecrutamento
H2Rodar o kit inicial em Linux e macOSnada (recomendado)Engenharia
H3Prazo mínimo de entrega no conviteenvioRecrutamento

desafios / T02-P-X04-pedido-em-dobro / banca / blindagem.mdconfidencial · só a banca

Blindagem · ciclo 2

barreira de privacidade

Só o material do candidato foi enviado, com nomes de arquivo neutros. Gabarito, rubrica, testes ocultos e entregas identificadas nunca saem para um modelo externo.

modeloduraçãocaiu na armadilhainvariantes violadossustenta a defesasó entregaentrega + defesaveredito
Modelo Acom execução de código38 minnão2/11não3,42,3PARCIAL
Modelo Bconversa22 minsim5/11não2,61,9RESISTENTE
Modelo Cconversa31 minnão3/11parcial3,12,2RESISTENTE
Modelo Dlocal12 minsim7/11não1,81,4RESISTENTE
nota por modelo, de 0 a 4só entregaentrega + defesafaixa de recomendar: 2,8

alerta automático · conferido

Nota só com a entrega acima de 3,0 (modelos A e C): o peso ao vivo fica em pelo menos 50% e a autoria (D8) vira eliminatória.

nota final = 40% × menor(entrega, defesa) + 60% × defesa

Brechas e recomendações

  1. Brecha 1. O teste público cobria o aviso repetido em sequência; dois modelos passaram por ele sem tratar a entrega fora de ordem.

    → Levar a entrega fora de ordem para os testes ocultos e para a falha injetada. Aplicado.

  2. Brecha 2. O diagrama de sequência chamava um passo de "deduplicar".

    → Trocar o rótulo por "confirmar pagamento" e deixar a decisão com o candidato. Aplicado.

G4a · APROVADONenhum VULNERÁVEL e um PARCIAL, coberto pela falha injetada na defesa.

Regra de publicação: nenhum VULNERÁVEL e no máximo um PARCIAL coberto pela parte ao vivo.

terminal · ~/banca-tecnica

node scripts/empacotar.mjs T02-P-X04

empacotar · T02-P-X04 · pedido-em-dobro

  1. [1/4] copia só a pasta do candidato11 arquivos
  2. [2/4] guardião de confidencialidade na cópia
  3. segredos0
  4. dados pessoais0
  5. trechos da banca no pacote0
  6. [3/4] placeholders de publicação2
  7. convite.md:12 {{CANAL_DE_CONTATO}}H1
  8. convite.md:19 {{PRAZO_MINIMO_DIAS}}H3
  9. [4/4] zip com código neutronão gerado

✗ bloqueado: resolva H1 e H3 e rode de novo. Nada foi enviado.

node scripts/status.mjs

  • T02-P-X04G5 aguarda H1
  • T08-J-X02rascunho, G3
  • T13-S-X07rascunho, G2
  • T05-P-X05rascunho, G2
  • T07-E-X01rascunho, G1

G0 a G5 por desafio · 0 publicados · 0 avaliações

T02-P-X04 / candidato / aviso-e-termo.md enviar antes do aceite

Antes de aceitar

Este é o aviso que a pessoa candidata recebe antes de decidir participar. O enunciado e o kit só vão depois do aceite.

o desafio
Take-home de até 240 minutos e uma conversa técnica ao vivo de 60 minutos com duas pessoas da banca.
remuneração
Até 4 horas de trabalho assíncrono, o desafio não é pago. Acima disso, ele é remunerado: nada de trabalho grátis.
uso de IA
Pode usar no take-home. Anote no diário de decisões onde usou e o que conferiu. Na conversa ao vivo não há IA, e a documentação fica liberada.
acessibilidade
Precisa de mais tempo, de pausa ou de outro formato? Peça a qualquer momento: o pedido não entra na avaliação. Nenhum hardware ou software pago é necessário.
seus dados
Antes de qualquer leitura, a entrega recebe um código, como CAND-2026-0001, e o seu nome sai dos arquivos, inclusive dos metadados de autor do git. A tabela que liga código e nome fica fora do repositório.
por quanto tempo
6 meses depois do fim do processo, ou 12 se você autorizar o banco de talentos. Depois disso, tudo é apagado por script.
quem decide
Uma pessoa. A banca escreve um parecer que apoia a decisão, e você recebe uma devolutiva.
critérios
Idade, gênero, raça, religião, deficiência, estado civil, gravidez ou origem nunca são critério (Lei 9.029/95).

desafios / T02-P-X04-pedido-em-dobro / banca / roteiro-defesa.mdconfidencial · só a banca

exemplo preenchido

Registro com um candidato fictício, para mostrar o modelo. Nenhum candidato real passou por esta banca.

Defesa ao vivo · Pleno · 60 min

bloco atual falha injetada · minuto 40 a 50 · D4 verificação

A banca injeta avisos duplicados em paralelo no ambiente da entrega. Até duas dicas, cada uma registrada.

  1. O quêO que acontece agora que o provedor reenviou o aviso 40 segundos depois?
  2. Por quêPor que a chave de idempotência é o id do evento, e não o do pedido?
  3. E seE se o aviso de estorno chegar antes do aviso de pagamento?
  4. Quando nãoQuando essa trava deixa de ser suficiente?
  5. ProvaQue teste mostraria a falha antes da sua correção?

âncoras da resposta

  1. 1Não localiza a falha, mesmo com as duas dicas.
  2. 2Localiza com as duas dicas e corrige o sintoma.
  3. 3Localiza com até uma dica e corrige a causa.
  4. 4Localiza sozinho, corrige a causa e propõe o teste que prova.

dicas usadas 1 de 2

Registro com minutagem CAND-2026-0001

minpergunta ou eventoresumo fiel da respostadimensão
00aberturaScript de abertura lido. Nenhum pedido de acomodação.—
04tour pela entregaComeçou pelo diário: registrar o evento antes de despachar.D1
12explique esta linhaExplicou a comparação de versão e o que acontece quando duas gravações colidem.D8
22fundamentosSeparou "pelo menos uma vez" de "exatamente uma vez" com um exemplo próprio.D2
34mudança de requisitoValidou a assinatura do aviso, mas gravou o corpo inteiro no log, com o e-mail do comprador.D5
43falha injetadaAchou a corrida entre avisos paralelos com uma dica e levou a trava para o banco.D4
52PR plantadoApontou o retry sem limite e a falta de teste; pediu mudanças.D3
58perguntas do candidatoPerguntou sobre plantão e sobre como o time revisa código.—

abertura, lida em voz alta: sem IA nesta conversa · documentação liberada · silêncio para pensar é bem-vindo · se precisar de pausa ou de outro formato, é só pedir.

avaliacoes / _exemplo / parecer-CAND-2026-0001.md

exemplo preenchido

Candidato fictício. A ferramenta ainda não avaliou nenhum candidato real.

Parecer · CAND-2026-0001 · T02-P-X04 · Pleno

candidato
CAND-2026-0001 (pseudônimo)
banca
avaliador técnico · avaliadora de segurança
expurgo
31/03/2027 · banco de talentos: sem consentimento
dimensãoneste desafiopesotécnicosegurançafinalfinal × peso
D1 entendimentoler o fluxo de pagamento10%3330,30
D2 fundamentosidempotência e concorrência20%4440,80
D3 qualidadecódigo e revisão do PR15%3330,45
D4 verificaçãotestes e falha injetada15%3330,45
D5 segurança e privacidadeaviso público e logs10%3120,20
D6 operaçãoreprocessamento e alerta10%3330,30
D7 comunicaçãodiário e defesa5%3330,15
D8 autoria e domínioexplique esta linha15%3330,45

3,10

Recomendarnota ponderada · faixa de 2,80 a 3,39

  • ✓ D2 fundamentos ≥ 2
  • ✓ autoria (D8) = 3; com 2 ou menos, não recomenda nem para o nível abaixo
  • ✓ eliminatórias: nenhuma
  • ✓ testes ocultos: 9 de 11 invariantes

divergência · D5

Técnico 3 × segurança 1. Diferença de 2 pontos: discussão obrigatória com evidência nova. Evidência: minuto 34 da defesa, o corpo do aviso com o e-mail do comprador gravado no log. Final: 2.

plano de desenvolvimento
D5: dado pessoal em log. Mascarar e-mail e guardar só o id do evento.
revisão de equidade
Nenhum critério fora da rubrica. Nenhum pedido de acomodação.
devolutiva
Rascunho pronto; vai para o candidato depois da decisão.
decisão humana
pendente gestora da vaga

Este parecer apoia, e não substitui, a decisão de uma pessoa.